ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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



 




Copyright © Lexa Software, 1996-2009.