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