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