ngx_http_perl_module

Andrey N. Oktyabrski ano at antora.ru
Thu Apr 27 10:04:46 MSD 2006


Igor Sysoev wrote:
> On Tue, 25 Apr 2006, Sergey Serov wrote:
> 
>> Кстати, а можно узнать, почему выбор встроенного языка был остановлен 
>> именно
>> на перле? С одной стороны я вижу у Вас в коде сравнивание длины строки до
>> strncmp, а с другой стороны - перл. Этот пожиратель памяти.
>>
>> Пока боролся с lighttpd обнаружил в нем полноценный встроенный Lua, 
>> хоть и
>> назывался он там mod_cml (cache makeup language), но был совершенно
>> полноценным встроенным языком. Синтаксис, конечно непривычный немного, 
>> но его
>> работа совершенно не сказывалась на результатах моих бенчмарков.
>> Статика и результат работы Lua выдавали одинаковое - порядка 5к 
>> запросов в сек
>> на относительно слабой машине.
> 
> Изначально я не хотел встраивать какой-либо язык, поскольку неблокирующая
> архитектура сервера накладывает существенные ограничения на его 
> использование.
> Позже я пришёл к выводу, что часть неблокирующихся задач вполне можно 
> писать
> на встраиваемом языке. Ну и кроме того, можно сделать обработчик запроса
> в виде нескольких callback'ов, которые будут вызыватся после долгой
> операции - резолвинг, ответ другого сервера, базы данных и прочая.
> Разумеется, все эти длительные операции должны делаться не стандартными
> средствами (gethostbynmame, connect и прочая), а обрабатываться самим
> nginx'ом в неблокирующимся режиме.
> 
> Выбирать язык мне было особо не из чего. php, ruby и python я не знаю,
> про lua читаю второй раз, а перл знаю не плохо и представляю, как его
> встраивать. Что касается пожирания памяти, то, на мой взгляд, это зависит
> от использования. perl есть память не всегда.
Тогда про lua стоит почитать ещё :-) Он действительно очень компактный и 
быстрый, разрабатывался именно как встраиваемый интерпретатор. Кроме 
того, в нём (как и в ruby) очень хорошо продумано добавление своих 
модулей, написанных на С.





More information about the nginx-ru mailing list