ПРОЕКТЫ 


  АРХИВ 


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: nginx-0.1.13



On Tue, 21 Dec 2004, Михаил Монашёв wrote:

> Здравствуйте Игорь,
>
> IS> server_names_hash задаёт размер хэша, по умолчанию 1009. Если имён
> IS> не  много,  скажем,  500, то можно поставить что-то вроде 101. Для
> IS> размера лучше брать простые числа.
>
> Хорошо  бы выдавать предупреждение, что чилосло не простое. Иначе толк
> от  хэша будет нулевой в неумелых руках. И кстати почему для 500 нужно
> 101  задавать.  Вроде ведь эффективное использование хэша, основанного
> на  остатке  от  деления на простое число, происходит при заполенности
> хэша  не более чем на 90%. Т.е. для 500 имён можно рекомендовать выбор
> первого  простого  числа  большего  550,  а лучше больше. Или я что-то
> неправильно  понял?  И  кстати  почему  бы  не вычислять этот параметр
> налету?  Найти  просто  число  большее  чем X простым перебором совсем
> незатратно,  если  X скажем 30000. Или же просто выбирать это число из
> заранее просчитанного списка:
> если имён от 50 до 900, то 1009
> если от 901 до zzzz то yyyyy
>
> Это  сильно  упростит конфигурирование и избавит админа от выискивания
> простых  чисел  написанием маленьких программок. Да и не факт ещё, что
> хорошое правильное число найдётся. Ведь простые числа не все одинаково
> хорошо подходят для хэширования, если мне память не изменяет.

Программки уже написаны. На FreeBSD, например, простые числа добываются так:
/usr/games/primes 100 200

Хеш в данном случае используется не столько для того, чтобы сразу найти
нужное значение, сколько для того, чтобы существенно уменьшить число
сравнений. Для 500 имён хеш в 100 уменьшает число сравнений до примерно 5.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.