Tuesday, December 7, 2010

clisp && sbcl

Всё-таки множество интерпретаторов/компиляторов языка — это замечательно.

Изначально я установил только CLISP и довольно долго был уверен, что этого мне будет достаточно. Ан нет: эта штука генерирует весьма тормозной байткод. Для работы в интерактивном режиме лучше CLISP ничего не придумаешь, а вот для исполнения программ, связанных с перебором... это полная жуть. Казалось бы, чего тут такого — перебрать все перестановки 10 элементов? Каких-то там 3628800 итераций, фи. А на CLISP этот перебор отнял секунд 15 времени (и это при том, что я несколько советов из книжки "ANSI Common LISP" для оптимизации заюзал). Жуть.

В общем, поставил я SBCL. Результаты превзошли все ожидания: большинство написанных мной функций стали выполняться быстрее раз эдак в 10-15 и теперь по скорости сравнимы с сишным кодом. Единственное, что пришлось поменять в коде, так это вызовы функций, связанных с регулярными выражениями (установил cl-ppcre). Ну оно и к лучшему, PCRE рулят =) (В CLISP встроены только POSIX-регулярки, насколько я понял.)

No comments:

Post a Comment