Языки программирования и регулярные выражения

Оказывается на http://shootout.alioth.debian.org/ публикуют метрики большинства современных языков программирования из тех что можно запустить на Ubuntu, а то есть практически всех.

Из особенно интересного там есть метрики применения регулярных выражений — http://shootout.alioth.debian.org/u32q/benchmark.php?test=regexdna&lang=all&box=1 на Intel QuadCore Q6600.

Кстати, там много и других интересных сравнений реализаций алгоритмов.

Ну а для регулярных выражений, судя по тестам, там лидирует V8 JavaScript engine из Chromium. Ещё в феврале этого года они писали про движок Irregexp у себя в блоге и то что там реализовали компиляцию регулярных выражений в промежуточный автомат.  Что и говорить, результаты впечатляющие, обгоняют даже C++ реализацию на Boost, а мой любимый язык разработки Python так вообще отстаёт в 6 раз.

Как я вижу,  даже это шестикратное ускорение, на мой взгляд, недостаточно поскольку не решена другая немаловажная задача — построения индекса из регулярных выражений, дабы ускорить проверки текста и поиск по тексту когда выражений могут быть сотни.

С другой стороны, если промежуточный автомат они построили, то построить их индекс уже проще. Такие исследования и наработки уже были и в закрытых реализациях существуют.

P.S. Кстати, бегло посмотрев код могу констатировать тот факт что в другие языки irregexp вполне можно перенести и вся реализация там укладывается в 700 строк, и, конечно, важно проверить его работу на живых, а не синтетических примерах дабы понять производительность на не-ASCII символах.

About This Author

Яндекс.Метрика