Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: guid to nginx internals
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.
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
|