Re: Стабильным релизом будет версия 1.0
Artemciy
nginx-forum на nginx.us
Сб Окт 16 15:14:14 MSD 2010
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 была бы очень
"вкусной". : )
[quote="Валентин Бартенев"]
Мне кажется, что такой mmap в данном
случае это не более чем компромисс
между
полноценным кэшем и чтением из файла.
Судите сами, средний размер типичного
откомпилированного шаблона не
превышает 10 Кб. Положим у вас на сайте
100
различных шаблонов страниц, что
достаточно много, и вы хотите их все
поместить
в кэш. В этом случае, размер кэша будет
составлять около 1 Мб. Даже если у вас
1000 (!) различных шаблонов страниц, и вы
их непременно все хотите кэшировать,
то речь идет о 10 Мб. По-моему с mmap вы
больше проиграете, в случае, если 10
Кб придется считать с жесткого диска.
Я исследую внимательнее сей вопрос, и
возможно задействую позднее mmap в
определенном случае, но точно не как
замену полноценному кэшу. mmap выглядит
вкусным, когда идет параллельное
чтение одного и того же файла шаблона,
он
разумеется скорее всего уже читается
из файлового кэша, но тем не менее
каждый
запрос порождает свой буфер под него, о
чем, как раз, писал Валерий Холодков.
[/quote]
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,135725,141222#msg-141222
Подробная информация о списке рассылки nginx-ru