Информация об изменениях

Сообщение Re[10]: Java vs C# vs C++ от 29.09.2015 21:31

Изменено 29.09.2015 21:38 alexzzzz

Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, alexzz, Вы писали:


A>>Запустил оба варианта раз по десять, лучшие результаты такие:

A>>C#
A>>.NET Elapsed: 52,0000 ms
A>>C++
A>>Elapsed = 51.3899 ms
A>>С++ победил!

_>Что-то какие-то сомнительные результаты. Я сейчас запустил у себя прямо этот код и получил:

_>.NET Elapsed: 96,0000 ms
_>Elapsed = 38.0022 ms.

Я посмотрел. У меня достаточно скомпилировать C#-пример под любую версию .Net Framework от 4 и выше, чтобы скорость не отличалась от С++. Посмотрел дизассемблер. Если выбрать 3.5, то оператор умножения не инлайнится, а внутри него ещё есть вызов конструктора, который тоже не инлайнится. В более поздних версиях инлайнится всё.

Версию x86 особо не разглядывал, она всего на несколько миллисекунд медленнее x64. Непринципиально.
Re[10]: Java vs C# vs C++
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, alexzz, Вы писали:


A>>Запустил оба варианта раз по десять, лучшие результаты такие:

A>>C#
A>>.NET Elapsed: 52,0000 ms
A>>C++
A>>Elapsed = 51.3899 ms
A>>С++ победил!

_>Что-то какие-то сомнительные результаты. Я сейчас запустил у себя прямо этот код и получил:

_>.NET Elapsed: 96,0000 ms
_>Elapsed = 38.0022 ms.

Я посмотрел. У меня достаточно скомпилировать C#-пример под любую версию .Net Framework от 4 и выше (CLR > 2.0), чтобы скорость не отличалась от С++. Посмотрел дизассемблер. Если выбрать 3.5, то оператор умножения не инлайнится, а внутри него ещё есть вызов конструктора, который тоже не инлайнится. В более поздних версиях инлайнится всё.

Версию x86 особо не разглядывал, она всего на несколько миллисекунд медленнее x64. Непринципиально.