[infinispan-dev] Hash functions
Manik Surtani
manik at jboss.org
Mon Mar 29 07:49:01 EDT 2010
On 29 Mar 2010, at 10:30, Galder Zamarreno wrote:
> Manik,
>
> If String's are dealt with by calling String.getBytes() which in turns
> gets processed as a byte[], why is there such a big difference
> SuperFastHash String speed and MurmurHash2 String speed (162 ms vs 56 ms)
> but there's hardly any difference between the byte[] tests (29ms vs 40ms) ?
No idea. Microbenchmarks are notoriously fickle though, I will try and run this again over a larger sample size to smooth things out a bit.
>
> Cheers,
>
> On Tue, 23 Mar 2010 18:44:11 +0100, Manik Surtani <manik at jboss.org> wrote:
>
>> Some very early results,
>>
>> http://pastie.org/883111
>>
>> Only testing MurmurHash2 (endian-neutral variant which is 2x as slow as
>> the original algo) and SuperFastHash. I haven't implemented FNV-1 as
>> yet.
>>
>> Some notes:
>>
>> * Test was run over 100k random keys
>> * Max size for a String and byte[] key set to 16. Actual size is a
>> random number between 1 and MaxSize.
>> * Functions mainly implemented to handle byte[]'s.
>> * Functions handle Strings by calling String.getBytes(). The bulk of
>> the time spent in String keys is therefore attributed to
>> String.getBytes().
>> * Functions handle Object hashcodes by taking the int hashcode and
>> creating a 4-element byte[] out of it. Again, the bulk of the time
>> spent here is in this conversion.
>> * Keys generated before any measurements taken, a full cycle run to warm
>> up the hotspot compiler as well.
>>
>> Looks like MurmurHash2, despite using the slower version to accommodate
>> CPU endian neutral behaviour, is winning in terms of distribution. And
>> by a fair way too.
>>
>> For those interested in the test and the hash impls, have a look at this
>> (dependency on Apache commons-math):
>>
>> http://pastie.org/883135
>>
>> Cheers
>> --
>> Manik Surtani
>> manik at jboss.org
>> Lead, Infinispan
>> Lead, JBoss Cache
>> http://www.infinispan.org
>> http://www.jbosscache.org
>>
>>
>>
>>
>>
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
>
> --
> Galder Zamarreño
> Sr. Software Engineer
> Infinispan, JBoss Cache
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Manik Surtani
manik at jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org
More information about the infinispan-dev
mailing list