Бенчмарка различных языков программирования 24-Aug-10
------------------------------------------- ---------
Подробности в моём Живом Журнале (сильно устаревшие)
Машина: Pentium III 800 MHz память 768 Mb Win XP SP3
Данные: текстовый файл на 742900 строк (30 мегабайт)
Да, я знаю, в чём разница между языком и реализацией
Язык Версия Строчки Время Примечания
---- ------ ------- ----- ----------
Интерпретаторы (обновились)
clisp 2.49 23 + 4 1:13 1,5
newlisp 10.2.8 6 + 3 1:18 4
python 2.6.5 10 + 5 18
ruby 1.8.7 7 + 2 1:09
ruby 1.9.1 8 + 3 1:35
Интерпретаторы (стабильные)
gawk 3.1.6 9 + 3 36
lua 5.1.2 20 + 6 32
perl 5.10.0 8 + 1 35
Интерпретаторы (устаревшие)
factor 0.91 11 + 5 3:15
icon 9.3.2 8 + 0 1:48 6
s-lang 2.0.6 15 + 4 58
Интерпретаторы (майкрософт)
jscript 5.7 22 + 5 25:00
Старые данные, не проверялись
scm 5e4 19 + 7 8:36 2,6
Just In Time Компиляторы
luajit 1.1.3 20 + 6 26
psyco 1.6 11 + 5 15
Интерпретаторы (для ms-dos)
lua 5.1 20 + 6 27
perl 5.6.1 8 + 1 27
perl 4.036 9 + 2 31
python 2.4.1 13 + 5 21
Виртуальные Машины
java 1.6.0 25 + 3 25 5,6
Компиляторы
gcc 3.4.5 102 + 20 8 3,6
g++ 3.4.5 18 + 7 24 2,4
ocaml 3.10.2 10 + 4 25 6
Компиляторы (ручная оптимизация)
g++ 3.4.5 34 + 13 18 2
ocaml 3.10.2 22 + 5 22 1,6
я подозреваю, что с pcre-ocaml работать будет гораздо
быстрее, но я не сумел собрать её с помощью mingw :-(
TODO: ocaml+pcre, PLT scheme, python 3.1, Haskell, C#, D
Примечания
1) разбиение на слова сделано вручную
2) чтение по словам, а не по строчкам
3) ассоциативная таблица сделана вручную
4) упорядоченная ассоциативная таблица
5) юникод принудительно имитирует байты
6) таблица называется не score, а total
Ссылки наружу
-------------
Наиболее известная бенчмарка
Рейтинг популярности языков
Разновообразелый штук
---------------------
Скрипт, которым сгенерена эта страница
Текст этой страницы в другом формате
Скрипт для подсчёта содержательных строчек
Скрипт для замера времени выполнения
Скрипт для упаковки всего этого вместе
Всё вместе