Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему .Net такой медленный? / 25 сообщений из 31, страница 1 из 2
29.09.2014, 10:00
    #38760230
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Немного посидев за симметричными микробенчмарками на Java и .Net, пришел к выводу, что .Net тормознее Java на вычислительных задачах процентов на 30% примерно.
Ну то есть берем один и тот же алгоритм, пишем равнозначный эффективный код на обеих платформах (с учетом специфики, разумеется). Потом профилируем по отдельности, что бы убедиться, что нету никаких косяков с точки зрения перформанса.
А потом сравниваем полученные цифры, и видим, что .Net стабильно прямо ощутимо тормознее Java.
Я не смог найти в интернете исследований на эту тему. Разве что, у разных уважаемых людей из мира перфоманса, постоянно между строк сквозит, что в .Net очень простенький и слабенький JIT. В принципе, других причин для тормозов я и не вижу, кроме него: не могут в Microsoft написать такой же умный компилятор, как в Oracle.
Кто-нибудь может поделиться сслыками с научными изысканиями на эту тему, или с глубоким анализом и/или сравнением компиляторов в Java и .Net?
...
Рейтинг: 0 / 0
29.09.2014, 10:02
    #38760234
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjv,

равнозначный код покажешь?
...
Рейтинг: 0 / 0
29.09.2014, 10:22
    #38760261
Volochkova
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
На некоторых вычислениях VB.NET проигрывает C# при компиляции в Release.
C# выигрывает в скорости, может Вы используете VB.NET?
...
Рейтинг: 0 / 0
29.09.2014, 10:32
    #38760268
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
http://habrahabr.ru/post/120090/

ну и в Wiki в разделе references есть ссылки на сравнение производительности
...
Рейтинг: 0 / 0
29.09.2014, 10:36
    #38760273
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Arm79 http://habrahabr.ru/post/120090/

ну и в Wiki в разделе references есть ссылки на сравнение производительностиГовно. Можно даже не смотреть. Когда человек в качестве бенчмарка выдает вот такое:
Код: c#
1.
2.
3.
4.
5.
6.
StartTiming();
for (int i = 0; i < _iterationCount; ++i)
{
    int x = rnd.Next();
}
StopTiming();

... то сразу же становится понятно, что он не знает ровным счетом ничего о том, как надо проводить микро-бенчмарки.

Отбрасываем, нужны еще ссылки.
...
Рейтинг: 0 / 0
29.09.2014, 10:40
    #38760282
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjvArm79 http://habrahabr.ru/post/120090/

ну и в Wiki в разделе references есть ссылки на сравнение производительностиГовно. Можно даже не смотреть. Когда человек в качестве бенчмарка выдает вот такое:
Код: c#
1.
2.
3.
4.
5.
6.
StartTiming();
for (int i = 0; i < _iterationCount; ++i)
{
    int x = rnd.Next();
}
StopTiming();


... то сразу же становится понятно, что он не знает ровным счетом ничего о том, как надо проводить микро-бенчмарки.

Отбрасываем, нужны еще ссылки.

Во-первых, в Wiki ссылки не смотрели? Там не один тест
во-вторых, указанный код автор позиционирует как скорость выдачи псевдослучайных значений, оговариваясь именно скоростью, а не качеством данных или еще чем. Там что, хоть и не очень важный параметр, но как второстепенный критерий вполне пойдет.
...
Рейтинг: 0 / 0
29.09.2014, 10:41
    #38760284
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Свеном, а тебе зачем? Делом займись, а не научными изысканиями своей тяги к "пиписькомерству".
...
Рейтинг: 0 / 0
29.09.2014, 10:57
    #38760308
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Arm79во-вторых, указанный код автор позиционирует как скорость выдачи псевдослучайных значений, оговариваясь именно скоростью, а не качеством данных или еще чем. Там что, хоть и не очень важный параметр, но как второстепенный критерий вполне пойдет.Вы не поняли. Проблема не в том, что у него что-то не то сравнивается. Проблема в том, что он неправильно пишет бенчмарки. Когда вы присваиваете результат чего-либо локальной переменной, которая потом нигде не используется, компилятор может вообще выпилить этот код вместе с циклом, если докажет, что данный код не имеет сторонних эффектов, оставив вас с чем-то вроде:
Код: c#
1.
2.
StartTiming();
StopTiming();

Поэтому написание микрбенчмарков - это не для студентов и джуниоров вроде этого парня. Этим занимаются опытные люди. Почитайте Алексея Шипилева на досуге, который занимается разработкой фреймворка для микробенчмарков для Java. Там надо как минимум понимать кишки компилятора, возиться с ассемблерным кодом, и прочий треш. А вы мне статью какого-то студента подсовываете.
...
Рейтинг: 0 / 0
29.09.2014, 10:58
    #38760314
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Свеном, опять вам все не так. В Wiki тоже все плохо?
...
Рейтинг: 0 / 0
29.09.2014, 11:06
    #38760329
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Arm79Свеном, опять вам все не так. В Wiki тоже все плохо?Комплексного анализа там нигде нет.
...
Рейтинг: 0 / 0
29.09.2014, 11:11
    #38760341
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Если речь идет о комплексном, то навряд ли где-нибудь он есть, кроме как ".Net и Java имеют схожую производительность". Я думаю, не ошибусь, хоть и не эксперт по Java, что на exadata скорость у Java будет прекрасной. Но у обычных программистов нет доступа к таким дорогим игрушкам. На общем уровне, если это не онлайн-трейдинг, имхо разницы особой нет. А где нужна реальная скорость работы кода (а не его разработки) уместнее голый С.
...
Рейтинг: 0 / 0
29.09.2014, 11:52
    #38760408
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjvКомплексного анализа там нигде нет.
а он кому-либо нужен?
...
Рейтинг: 0 / 0
29.09.2014, 12:44
    #38760490
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
>cdtyjv, сегодня, 10:00 [16632524]
>Немного посидев ...
Здесь сидели несколько дольше.

С уважением,
Владимир.
...
Рейтинг: 0 / 0
29.09.2014, 12:55
    #38760515
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
ВМоисеев ,
Ну хз насколько там грамотные люди все это писали. Короче, все более менее ясно - Java быстрее. Почему она быстрее тоже понятно - гораздо более крутой компилятор. CLR опирается на compile-time информацию, и практически беспопощен в рантайме. Java же наоборот отжигает в рантайме, и на всевозможных спекуляциях рвет .Net в клочья.
...
Рейтинг: 0 / 0
29.09.2014, 13:06
    #38760536
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Свеном, допустим на данный момент Java быстрее, хотя фактов ты не предоставил. И что?
Пойдёшь к своему руководителю и скажешь, что поставленная тебе задача не решаема, т.к. ".Net такой медленный"?
...
Рейтинг: 0 / 0
29.09.2014, 13:09
    #38760540
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Потестируй Microsoft .NET Native что-ли.
...
Рейтинг: 0 / 0
29.09.2014, 14:16
    #38760649
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjv, у JIT компиляции в .NET есть недостатки. Если бы их не было, то Microsoft не занималась бы технологией .NET Native и новым JIT компилятором RyuJIT. Советую попробовать последний и сравнить результаты. .NET Native работает пока только с Modern UI приложениями так что тестировать его в контексте вычислительных задач будет труднее.

P.S. Присоединяюсь к вопросу Pallaris. Где примеры равнозначного кода?
...
Рейтинг: 0 / 0
29.09.2014, 14:30
    #38760667
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
Почитал, все не то.
Натив - шляпа, никакого прироста на серверных приложениях не даст, так как там итак весь горячий код давным давно скомпилирован в натив.
РиуДжит - шляпа, так как уучшают время компиляции в первую очередь, а по динамической компиляции ничего не предвидется.

В общем, это все печеньки для окошечек и мобильных приложений. Я же спрашивал про сервер-сайд. Здесь .Нет по-прежнему ничего хорошего не светит.
...
Рейтинг: 0 / 0
29.09.2014, 14:46
    #38760695
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
PHP + LiteSpeed Web Server (LSWS) наше всё!
...
Рейтинг: 0 / 0
29.09.2014, 16:26
    #38760874
gandjustas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjvНемного посидев за симметричными микробенчмарками на Java и .Net, пришел к выводу, что .Net тормознее Java на вычислительных задачах процентов на 30% примерно.

Код в студию. Иначе любой может утверждать что X медленнее Y на Z%.
...
Рейтинг: 0 / 0
29.09.2014, 17:50
    #38761050
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
cdtyjvРиуДжит - шляпа, так как уучшают время компиляции в первую очередь, а по динамической компиляции ничего не предвидется.
Там еще добавили поддержку SIMD инструкций которые могут помочь при вычислениях.

cdtyjvНатив - шляпа, никакого прироста на серверных приложениях не даст, так как там итак весь горячий код давным давно скомпилирован в натив.
Об этом мы будем судить после выхода финальной версии т.к. сейчас .NET Native работает только с Modern UI приложениями.

cdtyjvЯ же спрашивал про сервер-сайд.
В уме спрашивал видимо т.к. в сообщениях до этого шла речь только о вычислительных задачах.
...
Рейтинг: 0 / 0
29.09.2014, 19:54
    #38761220
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
>cdtyjv, сегодня, 12:55 [16633576]
>... рвет .Net в клочья .

Не доказано.
Здесь (16 фев 08, 13:26 [5299013] ) попытался сравнить.
Результат - это не тузик и грелка.
Надо иметь тест-программу и запускать её варианты (Net & Java) на одной и той же машине. И аккуратней с проверкой границ массива - проверка включена/выключена.

С уважением,
Владимир.
...
Рейтинг: 0 / 0
29.09.2014, 19:56
    #38761223
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
ВМоисеев>cdtyjv, сегодня, 12:55 [16633576]
>... рвет .Net в клочья .

Не доказано.
Здесь (16 фев 08, 13:26 [5299013] ) попытался сравнить.
Результат - это не тузик и грелка.
Надо иметь тест-программу и запускать её варианты (Net & Java) на одной и той же машине. И аккуратней с проверкой границ массива - проверка включена/выключена.

С уважением,
Владимир.Попытаться то он попытался, но бенчмарк у него некорректный, так что его цифрами можно разве что ... ну вы понели.
...
Рейтинг: 0 / 0
29.09.2014, 20:24
    #38761244
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
>cdtyjv, сегодня, 19:56 [16635835]
>...но бенчмарк у него некорректный...

Ну да, гранаты не той системы.
Вслед за gandjustas (сегодня, 16:26 [16634874]) - ваш код в студию.

С уважением,
Владимир.
...
Рейтинг: 0 / 0
29.09.2014, 20:40
    #38761251
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему .Net такой медленный?
ВМоисеев ,
Я не могу выкладывать проприетарный код. Что до ваших бенчмарков, то вам надо было сначала хотя бы прогреть JVM-ку, и убедиться, что компиляция завершилась. После этого хорошо бы взглянуть на сгенерированный ассемблерный код, что бы убедиться, что вы действительно меряете именно то, что хотите: что не сработал dead code elimination, что циклы либо одинаково на месте, либо одинаково раскрутились на обеих платформах, и т.д..
А то это все от лукавого - сравнение непонятно чего с непонятно чем.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему .Net такой медленный? / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]