Re: Стабильным релизом будет версия 1.0

Валентин Бартенев ne на vbart.ru
Сб Окт 16 16:22:27 MSD 2010


В случае кэширования отдельных шаблонов, заданных в конфигурационном файле, 
read будет выполнен единожды, еще на этапе запуска nginx. Тут mmap как бы не 
нужен совсем.

В случае, если шаблон не кэшируется, тот тут надо хорошо подумать и 
протестировать. Потому, что, например, включая mmap, мы также отказываемся от 
AIO. Не стоит забывать про природу nginx, а используя mmap мы не только в 
определенном случае тратим чуть больше времени, но и блокируем на это время 
рабочий процесс.

Я подготовлю сперва ряд адекватных тестов производительности, учитывающих 
различные возможные ситуации, а затем уже буду экспериментировать с mmap. Но 
первым делом, разумеется будет реализован тот самый статический кэш, по 
желанию, еще на этапе запуска nginx.

--
Валентин Бартенев

> mmap это именно компромисс!
> 
> Наверно вы правы касательно размера
> шаблонов: я привык к тому, что AST дерево
> шаблонов занимает много оперативной
> памяти, но ваш байткод скорее всего
> более компактен, плюс избегает
> накладных расходов на отдельное
> выделение памяти для каждого AST узла.
> 
> Тем не менее, не вижу причин
> отказываться от mmap: комбинация open+mmap
> занимает больше времени чем open+read, но
> это важно если вы работаете в flow-through
> режиме (под flow-through я имею ввиду то, что
> описано тут - http://vtd-xml.sourceforge.net/technical/4.html
> - в секции Minimum buffering), если же вы
> кешируете часто используемые шаблоны,
> то цена одного mmap оказывается меньше
> чем цена повторяющихся read.
> Опция использования mmap была бы очень
> "вкусной".  : )
> 


Подробная информация о списке рассылки nginx-ru