88.1.1
by Samuele Pedroni (Canonical Services Ltd.)
add murmur3 |
1 |
murmur3
|
2 |
=======
|
|
3 |
||
4 |
Native Go implementation of Austin Appleby's third MurmurHash revision (aka |
|
5 |
MurmurHash3). |
|
6 |
||
7 |
Reference algorithm has been slightly hacked as to support the streaming mode |
|
8 |
required by Go's standard [Hash interface](http://golang.org/pkg/hash/#Hash). |
|
9 |
||
10 |
||
11 |
Benchmarks
|
|
12 |
----------
|
|
13 |
||
14 |
Go tip as of 2013-03-11 (i.e almost go1.1), core i7 @ 3.4 Ghz. All runs |
|
15 |
include hasher instanciation and sequence finalization. |
|
16 |
||
17 |
<pre> |
|
18 |
||
19 |
Benchmark32_1 200000000 8.4 ns/op 119.39 MB/s |
|
20 |
Benchmark32_2 200000000 9.5 ns/op 211.69 MB/s |
|
21 |
Benchmark32_4 500000000 7.9 ns/op 506.24 MB/s |
|
22 |
Benchmark32_8 200000000 9.4 ns/op 853.40 MB/s |
|
23 |
Benchmark32_16 100000000 12.1 ns/op 1324.19 MB/s |
|
24 |
Benchmark32_32 100000000 18.2 ns/op 1760.81 MB/s |
|
25 |
Benchmark32_64 50000000 31.2 ns/op 2051.59 MB/s |
|
26 |
Benchmark32_128 50000000 58.7 ns/op 2180.34 MB/s |
|
27 |
Benchmark32_256 20000000 116.0 ns/op 2194.85 MB/s |
|
28 |
Benchmark32_512 10000000 227.0 ns/op 2247.43 MB/s |
|
29 |
Benchmark32_1024 5000000 449.0 ns/op 2276.88 MB/s |
|
30 |
Benchmark32_2048 2000000 894.0 ns/op 2289.87 MB/s |
|
31 |
Benchmark32_4096 1000000 1792.0 ns/op 2284.64 MB/s |
|
32 |
Benchmark32_8192 500000 3559.0 ns/op 2301.33 MB/s |
|
33 |
||
34 |
Benchmark128_1 50000000 33.2 ns/op 30.15 MB/s |
|
35 |
Benchmark128_2 50000000 33.3 ns/op 59.99 MB/s |
|
36 |
Benchmark128_4 50000000 35.4 ns/op 112.88 MB/s |
|
37 |
Benchmark128_8 50000000 36.6 ns/op 218.30 MB/s |
|
38 |
Benchmark128_16 50000000 35.5 ns/op 450.86 MB/s |
|
39 |
Benchmark128_32 50000000 35.3 ns/op 905.84 MB/s |
|
40 |
Benchmark128_64 50000000 44.3 ns/op 1443.76 MB/s |
|
41 |
Benchmark128_128 50000000 58.2 ns/op 2201.02 MB/s |
|
42 |
Benchmark128_256 20000000 85.3 ns/op 2999.88 MB/s |
|
43 |
Benchmark128_512 10000000 142.0 ns/op 3592.97 MB/s |
|
44 |
Benchmark128_1024 10000000 258.0 ns/op 3963.74 MB/s |
|
45 |
Benchmark128_2048 5000000 494.0 ns/op 4144.65 MB/s |
|
46 |
Benchmark128_4096 2000000 955.0 ns/op 4285.80 MB/s |
|
47 |
Benchmark128_8192 1000000 1884.0 ns/op 4347.12 MB/s |
|
48 |
||
49 |
</pre> |