Бенчмарка различных языков программирования 24-Aug-10 │ │ ------------------------------------------- --------- │ │ │ │ Подробности в моём Живом Журнале (сильно устаревшие) │ │http://slobin.livejournal.com/30864.html │ │ Машина: Pentium III 800 MHz память 768 Mb Win XP SP3 │ │ Данные: текстовый файл на 742900 строк (30 мегабайт) │ │ │ │ Да, я знаю, в чём разница между языком и реализацией │ │ │ │ Язык Версия Строчки Время Примечания │ │ ---- ------ ------- ----- ---------- │ │ │ │ Интерпретаторы (обновились) │ │ │ │ clisp 2.49 23 + 4 1:13 1,5 │ │bench.cl newlisp 10.2.8 6 + 3 1:18 4 │ │bench.lsp python 2.6.5 10 + 5 18 │ │bench.py ruby 1.8.7 7 + 2 1:09 │ │bench.rb ruby 1.9.1 8 + 3 1:35 │ │bench2.rb │ │ Интерпретаторы (стабильные) │ │ │ │ gawk 3.1.6 9 + 3 36 │ │bench.awk lua 5.1.2 20 + 6 32 │ │bench.lua perl 5.10.0 8 + 1 35 │ │bench.pl │ │ Интерпретаторы (устаревшие) │ │ │ │ factor 0.91 11 + 5 3:15 │ │bench~1.fac icon 9.3.2 8 + 0 1:48 6 │ │bench.icn s-lang 2.0.6 15 + 4 58 │ │bench.sl │ │ Интерпретаторы (майкрософт) │ │ │ │ jscript 5.7 22 + 5 25:00 │ │bench.js │ │ Старые данные, не проверялись │ │ │ │ scm 5e4 19 + 7 8:36 2,6 │ │bench.scm │ │ Just In Time Компиляторы │ │ │ │ luajit 1.1.3 20 + 6 26 │ │bench.lua psyco 1.6 11 + 5 15 │ │bench2.py │ │ Интерпретаторы (для ms-dos) │ │ │ │ lua 5.1 20 + 6 27 │ │bench.lua perl 5.6.1 8 + 1 27 │ │bench.pl perl 4.036 9 + 2 31 │ │bench2.pl python 2.4.1 13 + 5 21 │ │bench3.py │ │ Виртуальные Машины │ │ │ │ java 1.6.0 25 + 3 25 5,6 │ │bench~1.jav │ │ Компиляторы │ │ │ │ gcc 3.4.5 102 + 20 8 3,6 │ │bench.c g++ 3.4.5 18 + 7 24 2,4 │ │bench.cc ocaml 3.10.2 10 + 4 25 6 │ │bench.ml │ │ Компиляторы (ручная оптимизация) │ │ │ │ g++ 3.4.5 34 + 13 18 2 │ │bench2.cc ocaml 3.10.2 22 + 5 22 1,6 │ │bench2.ml │ │ я подозреваю, что с pcre-ocaml работать будет гораздо │ │ быстрее, но я не сумел собрать её с помощью mingw :-( │ │ │ │ TODO: ocaml+pcre, PLT scheme, python 3.1, Haskell, C#, D │ │ │ │ Примечания │ │ │ │ 1) разбиение на слова сделано вручную │ │ 2) чтение по словам, а не по строчкам │ │ 3) ассоциативная таблица сделана вручную │ │ 4) упорядоченная ассоциативная таблица │ │ 5) юникод принудительно имитирует байты │ │ 6) таблица называется не score, а total │ │ │ │ Ссылки наружу │ │ ------------- │ │ Наиболее известная бенчмарка │ │http://shootout.alioth.debian.org/ Рейтинг популярности языков │ │http://www.tiobe.com/tpci.htm │ │ Разновообразелый штук │ │ --------------------- │ │ Скрипт, которым сгенерена эта страница │ │dir2html.py Текст этой страницы в другом формате │ │index~1.htm │ │ Скрипт для подсчёта содержательных строчек │ │lines.pl Скрипт для замера времени выполнения │ │watch.bat │ │ Исходный файл и образец результатов │ -- │data.7z │ │ Скрипт для упаковки всего этого вместе │ │makezip.bat Всё вместе │ │bench.zip ─────────────────────────────────────────── 24 Авг 2010, вт ── │ │ │ -- │su_books.txt │ -- │su_total.txt