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

Сообщение Re[19]: C# - from indians by indians от 09.06.2015 10:18

Изменено 09.06.2015 10:27 Sinix

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

_>Скорее всего дело в неверных настройках компилятора C++ — ему не позволена автовекторизация. ) У меня такие цифры (правда компилятор gcc):

Да, с /Qvec-report:2 вывод:
info C5002: loop not vectorized due to reason '1200'
// Loop contains loop-carried data dependences

Выше по ветке уже был похожий пример
Автор: PM
Дата: 05.06.15
. Компилятор c++ в vs2013 местами не блещет.

_>Однако даже и без автовекторизазии на твоих же цифрах видно, что разница между C++ и C# вариантом в 2 раза — это уже убойно. )))

Угу, нынешний JIT на числомолотилки не заточен, это давно известно. Чисто ради интереса: какой фреймворк и x64 или x86 вариант проверялся?
Здравствуйте, alex_public, Вы писали:

_>Скорее всего дело в неверных настройках компилятора C++ — ему не позволена автовекторизация. ) У меня такие цифры (правда компилятор gcc):

Да, с /Qvec-report:2 вывод:
info C5002: loop not vectorized due to reason '1200'
// Loop contains loop-carried data dependences

Выше по ветке уже был похожий пример
Автор: PM
Дата: 05.06.15
. Компилятор c++ в vs2013 местами не блещет.

_>Однако даже и без автовекторизазии на твоих же цифрах видно, что разница между C++ и C# вариантом в 2 раза — это уже убойно. )))

Угу, нынешний JIT на числомолотилки не заточен, это давно известно. Чисто ради интереса: какой фреймворк и x64 или x86 вариант проверялся?

P.S. Разница в 2 раза там из-за проверок на границы массива. Для всего кроме "i=0;i<array.Length" они не убираются.