On Tue, Feb 20, 2007 at 06:53:59PM +0100, Eric Dumazet ([EMAIL PROTECTED]) 
wrote:
> > > I've attached source code and running script.
> > > $ ./run.sh
> >
> > Yep, of course.
> 
> Your test program is just bogus. artefacts come from your 'random' generator.
> 
> You just increment a counter, assuming the key you search is not in the table 
> yet.

No, that part is commented, but it does not matter.

> But obviously with only a variation of sport (16 bits), you have a maximum of 
> 65536 values. No need to feed 100*2^20 values are most of them are dups.
> 
> Now if you change your program to do a real lookups with the 2^16 possible 
> values of sport you'll see :

No need to change something - I showed that in some cases jenkins ends
up with a huge problem. If test will be changed, or solar will be turned
off, things will behave good, but as is they behave very bad.

> jhash function :
> 1 61578
> 2 1916
> 3 42
> 
> that is : 61578 chains of length 1
> 1916 chains of length 2
> 42 chains of length 3
> 
> (for reference, with HASH_FOLD, about same results :
> 1 61692
> 2 1856
> 3 44
> 
> Pretty good results... for the gain jhash gives us.
> 
> Of course, XOR hash gives a 'perfect' 65536 chains of length 1.

As you can see, jhash has problems in a really trivial case of 2^16,
which in local lan is a disaster. The only reason jenkins hash is good
for hashing purposes is that is it more complex than xor one, and thus
it is harder to find a collision law. That's all.
And it is two times slower.

-- 
        Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to