Всё-таки множество интерпретаторов/компиляторов языка — это замечательно.
Изначально я установил только CLISP и довольно долго был уверен, что этого мне будет достаточно. Ан нет: эта штука генерирует весьма тормозной байткод. Для работы в интерактивном режиме лучше CLISP ничего не придумаешь, а вот для исполнения программ, связанных с перебором... это полная жуть. Казалось бы, чего тут такого — перебрать все перестановки 10 элементов? Каких-то там 3628800 итераций, фи. А на CLISP этот перебор отнял секунд 15 времени (и это при том, что я несколько советов из книжки "ANSI Common LISP" для оптимизации заюзал). Жуть.
В общем, поставил я SBCL. Результаты превзошли все ожидания: большинство написанных мной функций стали выполняться быстрее раз эдак в 10-15 и теперь по скорости сравнимы с сишным кодом. Единственное, что пришлось поменять в коде, так это вызовы функций, связанных с регулярными выражениями (установил cl-ppcre). Ну оно и к лучшему, PCRE рулят =) (В CLISP встроены только POSIX-регулярки, насколько я понял.)
Tuesday, December 7, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment