Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Быстрота программ напысаныхна С#


Автор: kurzon 30.9.2007, 12:10
На сколько быстрее работают програмы напысаные на С#, по-сравнению с другими языками .NET ?

Автор: VisualProgrammerNET 30.9.2007, 12:24
Зависит от прямоты рук программиста.

Автор: archeg 30.9.2007, 12:49
Уже где-то писал что согласно многим блогам благодаря JIT, приложение, написаное на шарпе способно перегнать аналогичное прилоежение написаное на сях в некоторых случаях. JIT компилит IL код находу под процессор - что значит что он может использовать инструкции, спецефические для процессора и даже помпилить приложение под x64. Конечно же, с другой стороны такие вещи как тот же JIT и GC довольно сильно замедляют работу - так что не все работает так быстро как бы хотелось. Сейчас мелкие довольно усиленно работают над ускорением работы .NET приложений

Автор: kurzon 30.9.2007, 13:07
Цитата(archeg @ 30.9.2007,  12:49)
Уже где-то писал что согласно многим блогам благодаря JIT, приложение, написаное на шарпе способно перегнать аналогичное прилоежение написаное на сях в некоторых случаях. JIT компилит IL код находу под процессор - что значит что он может использовать инструкции, спецефические для процессора и даже помпилить приложение под x64. Конечно же, с другой стороны такие вещи как тот же JIT и GC довольно сильно замедляют работу - так что не все работает так быстро как бы хотелось. Сейчас мелкие довольно усиленно работают над ускорением работы .NET приложений

И на сколько процентов быстрее?

Автор: Retro 30.9.2007, 13:19
Цитата(kurzon @  30.9.2007,  12:07 Найти цитируемый пост)
И на сколько процентов быстрее? 

Пусть будет на десять. smile 
А серьезно все зависит от поставленных задач, можно практически бесконечно оптимизировать приложение.

Автор: archeg 30.9.2007, 13:20
Цитата(kurzon @  30.9.2007,  13:07 Найти цитируемый пост)
И на сколько процентов быстрее? 

Я же сказал в зависимости от того что программа делает. Может быть и медленнее. Поищи в гугле, на codeproject и на msdn-блогах по этому поводу, там часто к статьям крепятся тесты на которых можно увидеть под конкретный пример реальные цифры.

С уверенностью могу сказать что не сильно быстрее  smile 

Автор: marcusmae 30.9.2007, 15:20
Вот есть, например, такие http://www.shudo.net/jit/perf/.

Цитата(archeg @  30.9.2007,  13:20 Найти цитируемый пост)
С уверенностью могу сказать что не сильно быстрее

С неменьшей уверенностью могу сказать, что намного медленней.  smile Кривость своих рук оцениваю, как не очень большую, и у меня разница достигала 20 минут (C#) против 3 секунд (C++/F77) для решения системы лин алг уравнений итерационным методом.

Цитата(archeg @  30.9.2007,  12:49 Найти цитируемый пост)
Конечно же, с другой стороны такие вещи как тот же JIT и GC довольно сильно замедляют работу - так что не все работает так быстро как бы хотелось.

Оказывается, не только. Я этот результат получил из-за намного более медленной работы массивов и, частично, делегатов (дальние вызовы примерно в 9 раз медленнее, чем member-функций - см. MSDN Journal).

JIT-оптимизация - вообще нулевой довод. Оптимизацию с использованием набора инструкций SSE3 можно спокойно использовать почти всюду, если только не понесёшь программу на музейные 486 и пентюки. И она будет работать достаточно быстро. Кроме того, выигрыш на многоядерных машинках : на сях намного проще сделать многопоточность (OpenMP), чем под .NET.

Автор: archeg 30.9.2007, 17:43
Цитата(marcusmae @  30.9.2007,  15:20 Найти цитируемый пост)
Кривость своих рук оцениваю, как не очень большую, и у меня разница достигала 20 минут (C#) против 3 секунд (C++/F77) для решения системы лин алг уравнений итерационным методом.

Можно посмотреть код?  smile 


Цитата(marcusmae @  30.9.2007,  15:20 Найти цитируемый пост)
Оказывается, не только. Я этот результат получил из-за намного более медленной работы массивов и, частично, делегатов (дальние вызовы примерно в 9 раз медленнее, чем member-функций - см. MSDN Journal).

Да, все эти проблемы существуют из-за жесткой типо-безопасности и всяких проверок)

Автор: marcusmae 30.9.2007, 18:12
Цитата(archeg @  30.9.2007,  17:43 Найти цитируемый пост)
Можно посмотреть код?

Он большой. Боюсь, тут накладно будет. Готов в ПМ.

Цитата(archeg @  30.9.2007,  17:43 Найти цитируемый пост)
Да, все эти проблемы существуют из-за жесткой типо-безопасности и всяких проверок)

Согласен.

Автор: Любитель 30.9.2007, 18:29
Цитата(kurzon @  30.9.2007,  12:10 Найти цитируемый пост)
 напысаные на С#, по-сравнению с другими языками .NET

Или я чего-то не понял, но вопрос типа про какие-то особенные оптимизации при генерации IL-кода именно шарповским компилером. В наличии оных я позволю себе усомнится. По крайней мере, если и будут какие-то специфические языковые особенности, они взаимозаменяемы (в плане оптимайза).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)