Сообщение 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. Непринципиально.
_>Здравствуйте, 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. Непринципиально.
_>Здравствуйте, 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. Непринципиально.