У меня на bbcb для Ubuntu 14.04 на Core i5-3337U CPU @ 1.80GHz × 4
С проверкой 6.23
Без проверки 3.23
Алексей, еще бы на топовых компиляторах протестировать
https://software.intel.com/en-us/intel-compilers
А этот тест выдерживает критику QWERTYProgrammer ?
http://forum.oberoncore.ru/viewtopic.php?f=61&t=4482&p=82278&hilit=ifort#p82223
Ну, интелёвый компилер далеко не всегда сильно у актуального gcc or clang выигрывает, иногда даже проигрывает.
Да, и изначально тут тест производительности не столько компиляторов и языков как таковых, а связки человек + язык + компилятор. То есть вот да, в меру криворукий программист написал какой-то код на языке X и собрал это дело компилятором Y, какой результат производительности он получит и насколько нетривиальные шаги ему придется предпринять, чтобы ускорить этот код?
Например отключить проверку индексов для данного конкретного массива - это простой ход. Простой и относительно безопасный. Отключить проверку индексов для целого модуля - ход тоже простой, но уже не столь безопасный. Если же единственный выход это вообще отключить проверку индексов для всей программы - это совсем плохо.
Если можно пользоваться стандартным массивом (из языка, или стандартной либы) и он не тормозит, это хоршо. Если приходится искать стороннюю либу для массива - это уже плохо. Если же приходится самостоятельно писать код например на Си, оформлять это дело в либу и подключать к проекту на вашем языке для подобных вещей - это ещё хуже.
Если наивная реализация работает достаточно быстро - это хорошо. Если для скорости приходится полностю переписывать реализацию (при том, что алгоритм остается другой) и он становится уже не столь прозрачным для читателя - это плохо.
Если приемлемая производительность достигнута с первого раза - это хорошо, если с десятой попытки, после консультации на форумах, после чтения мануалов и ковырянии в либах и опциях компилятора - это плохо.
Ну и так далее.
Ну и тестировал я в первую очередь пригодность ocaml и haskell для подобных алгоритмов (с мутабельными данными, а точнее - массивами), камло оказалось более пригодным, хотя haskell в итоге показал результат (по скорости) не хуже.
PS. не забываем, что этот алгоритм - банальная сортировка пузырьком. простейший алгоритм. Если даже для подобного приходится как-то изворачиваться, тратить кучу времени и экспериментов для достижения производительности, переписывать код в другой манере и так далее, то связка язык + компилятор не очень хороша как минимум для быстрого прототипирования, так как по итогам такого прототипирования сама идея может быть забракована, ибо прототип покажет, что производительность получается СЛИШКОМ низкая. Либо придется тратить время на нетривиальное вылизывание кода в сторону производительности, но это противоречит самой идее быстрого прототипирования - это уже не быстро.