<div dir="ltr">Hi, Maxim!<div class="gmail_extra"><br><div class="gmail_quote">2017-05-30 18:01 GMT+05:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The maximum size of hash table as specified by the hinit->max_size<br>
field is indeed maximum size, and not the size of the hash table.<br>
Following code in the ngx_hash_init() will try hard to find to<br>
find out an optimal hash size for a given set of values within the<br>
maximum size specified, and will test all the prime numbers as<br>
well.<br>
<br>
I see no reasons to additionally limit the maximum size to a prime<br>
number.  If you think there are some, please be more specific.<br><br></blockquote><div>You are right. I've modified patch to checkout primes first, then proceed to "hard work" . Also I've kolhozed some perf prove of improvement. </div><div>This test creates a hash table of 5000 semirandom strings (not very random, just bytes permutated).<br></div><div>On my Ubuntu VM without patch hash creation is 92-96ms, with patch it's strictly 0. "hard work" search tries about 2k sizes before success, primes search hits at second.</div><div><br></div><div>Docs say some words about startup speed and I wanted to apply primes somewhere, so here we go.</div><div><br></div><div>Best regards, Andrey Borodin.</div></div></div></div>