Бенчмарка различных языков программирования         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

Ссылки наружу
-------------
Наиболее известная бенчмарка
Рейтинг популярности языков

Разновообразелый штук
---------------------
Скрипт, которым сгенерена эта страница
Текст этой страницы в другом формате

Скрипт для подсчёта содержательных строчек
Скрипт для замера времени выполнения

Скрипт для упаковки всего этого вместе
Всё вместе