guid to nginx internals

Anton Yuzhaninov citrin at citrin.ru
Fri May 4 17:41:08 MSD 2007


Hello Mykola,

You wrote on Friday, May 4, 2007, 5:18:26 PM:

MZ> Начало цитаты:
MZ>     if (m[1] == 'O') {

MZ>         if (m[0] == 'P' && m[2] == 'S' && m[3] == 'T') {
MZ>             r->method = NGX_HTTP_POST;
MZ>             break;
MZ>         }

MZ>         if (m[0] == 'C' && m[2] == 'P' && m[3] == 'Y') {
MZ>             r->method = NGX_HTTP_COPY;
MZ>             break;
MZ>         }
MZ>     ...
MZ> That's a man who cares about performance. 
MZ> Конец цитаты.

MZ> Я не спец в C, и не читал той дискуссии по strncmp, но по моему
MZ> проверять 2-й байт, а потом 1-й - не самый оптимальный шаблон доступа к
MZ> памяти

С точки зрения скорости доступа к памяти без разницы в каком порядке,
лишь бы данные были там рядом.

Если повезет и они выровнены, как нужно то данные за один прием попадут
в кэш процессора. Не повезет - в два.

А количество сравнений получается меньше если сначала 2-й байт
проверить, потом 1-й.

-- 
 Anton Yuzhaninov.

P. S. Я могу и ошибаться поскольку не очень хорошо знаком с работой
кэша современных CPU.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1781 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070504/17057daa/attachment.bin>


More information about the nginx-ru mailing list