Closed klauspost closed 2 years ago
Hasher benchmark:
goos: windows
goarch: amd64
pkg: github.com/zeebo/xxh3
cpu: AMD Ryzen 9 3950X 16-Core Processor
BenchmarkHasher64/16/go/plain-32 132361942 9.070 ns/op 1764.00 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16/go/seed-32 120946587 9.916 ns/op 1613.58 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16/avx2/plain-32 132551456 9.046 ns/op 1768.70 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16/avx2/seed-32 120966583 9.910 ns/op 1614.50 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16/sse2/plain-32 132745168 9.071 ns/op 1763.91 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16/sse2/seed-32 120903742 9.973 ns/op 1604.27 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/go/plain-32 99832779 12.30 ns/op 5204.80 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/go/seed-32 88539975 13.19 ns/op 4853.09 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/avx2/plain-32 95480584 12.24 ns/op 5227.29 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/avx2/seed-32 88313866 13.28 ns/op 4819.08 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/sse2/plain-32 99568536 12.24 ns/op 5226.63 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/64/sse2/seed-32 91695448 13.18 ns/op 4855.94 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/go/plain-32 27735980 42.33 ns/op 6047.48 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/go/seed-32 20460811 58.59 ns/op 4369.14 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/avx2/plain-32 43664149 27.42 ns/op 9337.41 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/avx2/seed-32 29492797 40.29 ns/op 6353.36 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/sse2/plain-32 42487200 27.48 ns/op 9315.38 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/256/sse2/seed-32 27753428 42.53 ns/op 6018.71 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/go/plain-32 10050166 118.6 ns/op 8635.71 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/go/seed-32 8734291 137.4 ns/op 7454.75 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/avx2/plain-32 28147011 42.93 ns/op 23853.72 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/avx2/seed-32 21531499 55.94 ns/op 18306.73 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/sse2/plain-32 19256968 62.00 ns/op 16516.53 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1024/sse2/seed-32 16324730 73.61 ns/op 13910.47 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/go/plain-32 2668345 449.1 ns/op 9119.75 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/go/seed-32 2617776 457.8 ns/op 8947.12 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/avx2/plain-32 9362886 127.3 ns/op 32181.53 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/avx2/seed-32 9394250 127.7 ns/op 32074.71 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/sse2/plain-32 6240434 192.3 ns/op 21303.07 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4096/sse2/seed-32 6263018 192.5 ns/op 21276.46 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/go/plain-32 646498 1797 ns/op 9115.98 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/go/seed-32 629174 1835 ns/op 8928.75 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/avx2/plain-32 2499645 481.0 ns/op 34062.97 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/avx2/seed-32 2504042 480.1 ns/op 34123.45 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/sse2/plain-32 1562600 767.8 ns/op 21338.09 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16384/sse2/seed-32 1544410 776.9 ns/op 21087.91 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/go/plain-32 160936 7509 ns/op 8727.95 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/go/seed-32 156096 7651 ns/op 8566.17 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/avx2/plain-32 508386 2305 ns/op 28432.92 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/avx2/seed-32 519114 2291 ns/op 28601.55 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/sse2/plain-32 355677 3404 ns/op 19249.84 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/65536/sse2/seed-32 354942 3405 ns/op 19244.80 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/go/plain-32 40036 29940 ns/op 8755.57 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/go/seed-32 39601 30478 ns/op 8600.97 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/avx2/plain-32 129085 9187 ns/op 28535.51 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/avx2/seed-32 130216 9180 ns/op 28554.48 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/sse2/plain-32 88402 13612 ns/op 19258.13 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/262144/sse2/seed-32 88375 13598 ns/op 19278.77 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/go/plain-32 9964 122286 ns/op 8574.75 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/go/seed-32 9196 124692 ns/op 8409.34 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/avx2/plain-32 30085 39926 ns/op 26263.21 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/avx2/seed-32 29902 40002 ns/op 26213.33 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/sse2/plain-32 20605 57867 ns/op 18120.51 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/1048576/sse2/seed-32 20734 57824 ns/op 18133.90 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/go/plain-32 2410 489892 ns/op 8561.68 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/go/seed-32 2372 498236 ns/op 8418.30 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/avx2/plain-32 7372 159687 ns/op 26265.73 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/avx2/seed-32 7245 160216 ns/op 26179.12 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/sse2/plain-32 5011 231563 ns/op 18113.05 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/4194304/sse2/seed-32 5089 231585 ns/op 18111.30 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/go/plain-32 487 2419070 ns/op 6935.40 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/go/seed-32 460 2614072 ns/op 6418.04 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/avx2/plain-32 1173 1122912 ns/op 14940.81 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/avx2/seed-32 1014 1030943 ns/op 16273.67 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/sse2/plain-32 846 1445568 ns/op 11605.96 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/16777216/sse2/seed-32 889 1433268 ns/op 11705.57 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/go/plain-32 100 10717384 ns/op 6261.68 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/go/seed-32 99 11764693 ns/op 5704.26 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/avx2/plain-32 189 6311313 ns/op 10633.11 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/avx2/seed-32 189 6323100 ns/op 10613.29 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/sse2/plain-32 158 7547296 ns/op 8891.78 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/67108864/sse2/seed-32 158 7565688 ns/op 8870.16 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/go/plain-32 27 42900148 ns/op 6257.22 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/go/seed-32 25 47167288 ns/op 5691.14 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/avx2/plain-32 46 25125537 ns/op 10683.77 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/avx2/seed-32 48 25088762 ns/op 10699.43 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/sse2/plain-32 38 30119150 ns/op 8912.45 MB/s 0 B/op 0 allocs/op
BenchmarkHasher64/268435456/sse2/seed-32 39 30297149 ns/op 8860.09 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/go/plain-32 100000000 10.85 ns/op 1474.02 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/go/seed-32 100000000 10.70 ns/op 1495.32 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/avx2/plain-32 100000000 10.88 ns/op 1470.89 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/avx2/seed-32 100000000 10.67 ns/op 1499.01 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/sse2/plain-32 100000000 10.95 ns/op 1461.28 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16/sse2/seed-32 100000000 10.67 ns/op 1499.95 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/go/plain-32 78674078 14.52 ns/op 4407.18 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/go/seed-32 79365603 15.09 ns/op 4240.79 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/avx2/plain-32 81991855 14.48 ns/op 4419.11 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/avx2/seed-32 82415317 15.07 ns/op 4247.97 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/sse2/plain-32 85245435 14.48 ns/op 4419.75 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/64/sse2/seed-32 79947234 15.07 ns/op 4247.07 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/go/plain-32 25383018 46.94 ns/op 5454.05 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/go/seed-32 18807008 63.97 ns/op 4001.88 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/avx2/plain-32 37446638 31.89 ns/op 8027.23 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/avx2/seed-32 22929292 51.99 ns/op 4923.99 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/sse2/plain-32 36241293 32.76 ns/op 7814.77 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/256/sse2/seed-32 25815445 46.96 ns/op 5451.53 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/go/plain-32 9847066 122.3 ns/op 8372.64 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/go/seed-32 8395552 142.6 ns/op 7180.67 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/avx2/plain-32 25359523 47.97 ns/op 21347.95 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/avx2/seed-32 14630702 81.51 ns/op 12562.16 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/sse2/plain-32 18509149 64.32 ns/op 15920.16 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1024/sse2/seed-32 15605553 77.99 ns/op 13129.72 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/go/plain-32 2599041 461.9 ns/op 8867.27 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/go/seed-32 2604702 461.2 ns/op 8881.26 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/avx2/plain-32 9207826 130.3 ns/op 31427.84 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/avx2/seed-32 9134344 131.2 ns/op 31226.79 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/sse2/plain-32 6129124 196.7 ns/op 20828.49 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4096/sse2/seed-32 5709160 211.0 ns/op 19411.64 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/go/plain-32 662894 1823 ns/op 8986.91 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/go/seed-32 663543 1840 ns/op 8903.20 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/avx2/plain-32 2492983 483.0 ns/op 33923.63 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/avx2/seed-32 2477380 484.3 ns/op 33830.86 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/sse2/plain-32 1560356 771.1 ns/op 21247.46 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16384/sse2/seed-32 1505863 793.7 ns/op 20642.08 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/go/plain-32 158632 7543 ns/op 8688.00 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/go/seed-32 156362 7638 ns/op 8579.84 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/avx2/plain-32 509672 2305 ns/op 28435.64 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/avx2/seed-32 519068 2306 ns/op 28413.78 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/sse2/plain-32 350754 3429 ns/op 19114.11 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/65536/sse2/seed-32 350644 3443 ns/op 19037.24 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/go/plain-32 40096 29969 ns/op 8747.07 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/go/seed-32 39368 30461 ns/op 8605.83 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/avx2/plain-32 130340 9193 ns/op 28515.67 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/avx2/seed-32 130544 9221 ns/op 28428.01 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/sse2/plain-32 88260 13593 ns/op 19285.06 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/262144/sse2/seed-32 88588 13620 ns/op 19246.48 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/go/plain-32 9195 122948 ns/op 8528.63 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/go/seed-32 8862 125890 ns/op 8329.33 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/avx2/plain-32 29991 39954 ns/op 26244.61 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/avx2/seed-32 29935 40129 ns/op 26130.39 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/sse2/plain-32 20665 58118 ns/op 18042.18 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/1048576/sse2/seed-32 20654 57932 ns/op 18100.11 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/go/plain-32 2436 493451 ns/op 8499.94 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/go/seed-32 2404 502356 ns/op 8349.27 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/avx2/plain-32 7009 160109 ns/op 26196.62 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/avx2/seed-32 7470 160445 ns/op 26141.62 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/sse2/plain-32 5095 231687 ns/op 18103.36 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/4194304/sse2/seed-32 4981 232476 ns/op 18041.90 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/go/plain-32 488 2418268 ns/op 6937.70 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/go/seed-32 476 2594129 ns/op 6467.38 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/avx2/plain-32 1033 1124619 ns/op 14918.13 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/avx2/seed-32 1088 1028934 ns/op 16305.44 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/sse2/plain-32 860 1440442 ns/op 11647.27 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/16777216/sse2/seed-32 880 1400430 ns/op 11980.05 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/go/plain-32 100 10780787 ns/op 6224.86 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/go/seed-32 98 11792892 ns/op 5690.62 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/avx2/plain-32 189 6311541 ns/op 10632.72 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/avx2/seed-32 188 6402239 ns/op 10482.09 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/sse2/plain-32 156 7678965 ns/op 8739.31 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/67108864/sse2/seed-32 158 7689645 ns/op 8727.17 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/go/plain-32 26 42878115 ns/op 6260.43 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/go/seed-32 25 46528692 ns/op 5769.25 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/avx2/plain-32 46 25074578 ns/op 10705.48 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/avx2/seed-32 46 24934115 ns/op 10765.79 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/sse2/plain-32 39 29948956 ns/op 8963.10 MB/s 0 B/op 0 allocs/op
BenchmarkHasher128/268435456/sse2/seed-32 39 30070987 ns/op 8926.73 MB/s 0 B/op 0 allocs/op
PASS
ok github.com/zeebo/xxh3 219.006s
Added a copyless preloop for initial writes that are bigger than a block+stride.
Small penalty to small payloads, but great for bigger.
Since Hasher will probably be used mostly for bigger payloads that seems like a reasonable tradeoff.
benchmark old ns/op new ns/op delta
BenchmarkHasher64/16/go/plain-32 9.07 9.34 +2.95%
BenchmarkHasher64/16/go/seed-32 9.92 10.5 +5.59%
BenchmarkHasher64/16/avx2/plain-32 9.05 9.33 +3.15%
BenchmarkHasher64/16/avx2/seed-32 9.91 10.5 +5.75%
BenchmarkHasher64/16/sse2/plain-32 9.07 9.33 +2.87%
BenchmarkHasher64/16/sse2/seed-32 9.97 10.5 +5.38%
BenchmarkHasher64/64/go/plain-32 12.3 12.7 +3.41%
BenchmarkHasher64/64/go/seed-32 13.2 14.2 +7.28%
BenchmarkHasher64/64/avx2/plain-32 12.2 12.7 +3.84%
BenchmarkHasher64/64/avx2/seed-32 13.3 14.3 +7.45%
BenchmarkHasher64/64/sse2/plain-32 12.2 12.7 +3.92%
BenchmarkHasher64/64/sse2/seed-32 13.2 14.1 +6.83%
BenchmarkHasher64/256/go/plain-32 42.3 44.0 +4.02%
BenchmarkHasher64/256/go/seed-32 58.6 59.9 +2.30%
BenchmarkHasher64/256/avx2/plain-32 27.4 28.3 +3.17%
BenchmarkHasher64/256/avx2/seed-32 40.3 41.2 +2.36%
BenchmarkHasher64/256/sse2/plain-32 27.5 28.4 +3.31%
BenchmarkHasher64/256/sse2/seed-32 42.5 43.9 +3.27%
BenchmarkHasher64/1024/go/plain-32 119 122 +2.45%
BenchmarkHasher64/1024/go/seed-32 137 141 +2.55%
BenchmarkHasher64/1024/avx2/plain-32 42.9 44.5 +3.73%
BenchmarkHasher64/1024/avx2/seed-32 55.9 57.5 +2.88%
BenchmarkHasher64/1024/sse2/plain-32 62.0 64.2 +3.58%
BenchmarkHasher64/1024/sse2/seed-32 73.6 75.7 +2.88%
BenchmarkHasher64/4096/go/plain-32 449 428 -4.79%
BenchmarkHasher64/4096/go/seed-32 458 435 -5.05%
BenchmarkHasher64/4096/avx2/plain-32 127 97.1 -23.72%
BenchmarkHasher64/4096/avx2/seed-32 128 97.0 -24.04%
BenchmarkHasher64/4096/sse2/plain-32 192 166 -13.94%
BenchmarkHasher64/4096/sse2/seed-32 192 166 -13.71%
BenchmarkHasher64/16384/go/plain-32 1797 1643 -8.57%
BenchmarkHasher64/16384/go/seed-32 1835 1679 -8.50%
BenchmarkHasher64/16384/avx2/plain-32 481 304 -36.90%
BenchmarkHasher64/16384/avx2/seed-32 480 304 -36.66%
BenchmarkHasher64/16384/sse2/plain-32 768 596 -22.44%
BenchmarkHasher64/16384/sse2/seed-32 777 595 -23.45%
BenchmarkHasher64/65536/go/plain-32 7509 6521 -13.16%
BenchmarkHasher64/65536/go/seed-32 7651 6601 -13.72%
BenchmarkHasher64/65536/avx2/plain-32 2305 1174 -49.07%
BenchmarkHasher64/65536/avx2/seed-32 2291 1176 -48.67%
BenchmarkHasher64/65536/sse2/plain-32 3404 2306 -32.26%
BenchmarkHasher64/65536/sse2/seed-32 3405 2319 -31.89%
BenchmarkHasher64/262144/go/plain-32 29940 25967 -13.27%
BenchmarkHasher64/262144/go/seed-32 30478 26321 -13.64%
BenchmarkHasher64/262144/avx2/plain-32 9187 4577 -50.18%
BenchmarkHasher64/262144/avx2/seed-32 9180 4592 -49.98%
BenchmarkHasher64/262144/sse2/plain-32 13612 9144 -32.82%
BenchmarkHasher64/262144/sse2/seed-32 13598 9124 -32.90%
BenchmarkHasher64/1048576/go/plain-32 122286 104266 -14.74%
BenchmarkHasher64/1048576/go/seed-32 124692 105724 -15.21%
BenchmarkHasher64/1048576/avx2/plain-32 39926 19192 -51.93%
BenchmarkHasher64/1048576/avx2/seed-32 40002 19250 -51.88%
BenchmarkHasher64/1048576/sse2/plain-32 57867 37980 -34.37%
BenchmarkHasher64/1048576/sse2/seed-32 57824 37972 -34.33%
BenchmarkHasher64/4194304/go/plain-32 489892 436735 -10.85%
BenchmarkHasher64/4194304/go/seed-32 498236 443695 -10.95%
BenchmarkHasher64/4194304/avx2/plain-32 159687 103800 -35.00%
BenchmarkHasher64/4194304/avx2/seed-32 160216 104599 -34.71%
BenchmarkHasher64/4194304/sse2/plain-32 231563 171661 -25.87%
BenchmarkHasher64/4194304/sse2/seed-32 231585 171472 -25.96%
BenchmarkHasher64/16777216/go/plain-32 2419070 2170393 -10.28%
BenchmarkHasher64/16777216/go/seed-32 2614072 2196001 -15.99%
BenchmarkHasher64/16777216/avx2/plain-32 1122912 812622 -27.63%
BenchmarkHasher64/16777216/avx2/seed-32 1030943 821987 -20.27%
BenchmarkHasher64/16777216/sse2/plain-32 1445568 1021819 -29.31%
BenchmarkHasher64/16777216/sse2/seed-32 1433268 1035612 -27.74%
BenchmarkHasher64/67108864/go/plain-32 10717384 8763927 -18.23%
BenchmarkHasher64/67108864/go/seed-32 11764693 8869836 -24.61%
BenchmarkHasher64/67108864/avx2/plain-32 6311313 3413034 -45.92%
BenchmarkHasher64/67108864/avx2/seed-32 6323100 3320728 -47.48%
BenchmarkHasher64/67108864/sse2/plain-32 7547296 4200915 -44.34%
BenchmarkHasher64/67108864/sse2/seed-32 7565688 4158657 -45.03%
BenchmarkHasher64/268435456/go/plain-32 42900148 34811853 -18.85%
BenchmarkHasher64/268435456/go/seed-32 47167288 35460039 -24.82%
BenchmarkHasher64/268435456/avx2/plain-32 25125537 13928190 -44.57%
BenchmarkHasher64/268435456/avx2/seed-32 25088762 13934935 -44.46%
BenchmarkHasher64/268435456/sse2/plain-32 30119150 17303694 -42.55%
BenchmarkHasher64/268435456/sse2/seed-32 30297149 17426832 -42.48%
BenchmarkHasher128/16/go/plain-32 10.8 11.0 +1.75%
BenchmarkHasher128/16/go/seed-32 10.7 11.2 +4.30%
BenchmarkHasher128/16/avx2/plain-32 10.9 11.0 +0.83%
BenchmarkHasher128/16/avx2/seed-32 10.7 10.9 +2.34%
BenchmarkHasher128/16/sse2/plain-32 10.9 11.0 +0.18%
BenchmarkHasher128/16/sse2/seed-32 10.7 10.9 +2.44%
BenchmarkHasher128/64/go/plain-32 14.5 14.8 +1.65%
BenchmarkHasher128/64/go/seed-32 15.1 15.2 +0.93%
BenchmarkHasher128/64/avx2/plain-32 14.5 14.7 +1.73%
BenchmarkHasher128/64/avx2/seed-32 15.1 15.2 +1.00%
BenchmarkHasher128/64/sse2/plain-32 14.5 14.7 +1.73%
BenchmarkHasher128/64/sse2/seed-32 15.1 15.2 +1.13%
BenchmarkHasher128/256/go/plain-32 46.9 62.6 +33.30%
BenchmarkHasher128/256/go/seed-32 64.0 64.4 +0.70%
BenchmarkHasher128/256/avx2/plain-32 31.9 32.5 +1.94%
BenchmarkHasher128/256/avx2/seed-32 52.0 44.4 -14.62%
BenchmarkHasher128/256/sse2/plain-32 32.8 33.1 +1.19%
BenchmarkHasher128/256/sse2/seed-32 47.0 48.0 +2.19%
BenchmarkHasher128/1024/go/plain-32 122 144 +18.07%
BenchmarkHasher128/1024/go/seed-32 143 143 +0.42%
BenchmarkHasher128/1024/avx2/plain-32 48.0 48.4 +0.85%
BenchmarkHasher128/1024/avx2/seed-32 81.5 61.2 -24.86%
BenchmarkHasher128/1024/sse2/plain-32 64.3 65.4 +1.73%
BenchmarkHasher128/1024/sse2/seed-32 78.0 78.5 +0.60%
BenchmarkHasher128/4096/go/plain-32 462 422 -8.59%
BenchmarkHasher128/4096/go/seed-32 461 432 -6.33%
BenchmarkHasher128/4096/avx2/plain-32 130 95.8 -26.46%
BenchmarkHasher128/4096/avx2/seed-32 131 96.3 -26.59%
BenchmarkHasher128/4096/sse2/plain-32 197 176 -10.52%
BenchmarkHasher128/4096/sse2/seed-32 211 180 -14.69%
BenchmarkHasher128/16384/go/plain-32 1823 1639 -10.09%
BenchmarkHasher128/16384/go/seed-32 1840 1677 -8.86%
BenchmarkHasher128/16384/avx2/plain-32 483 306 -36.65%
BenchmarkHasher128/16384/avx2/seed-32 484 304 -37.21%
BenchmarkHasher128/16384/sse2/plain-32 771 603 -21.79%
BenchmarkHasher128/16384/sse2/seed-32 794 607 -23.55%
BenchmarkHasher128/65536/go/plain-32 7543 6483 -14.05%
BenchmarkHasher128/65536/go/seed-32 7638 6588 -13.75%
BenchmarkHasher128/65536/avx2/plain-32 2305 1177 -48.94%
BenchmarkHasher128/65536/avx2/seed-32 2306 1183 -48.70%
BenchmarkHasher128/65536/sse2/plain-32 3429 2318 -32.40%
BenchmarkHasher128/65536/sse2/seed-32 3443 2320 -32.62%
BenchmarkHasher128/262144/go/plain-32 29969 25896 -13.59%
BenchmarkHasher128/262144/go/seed-32 30461 26300 -13.66%
BenchmarkHasher128/262144/avx2/plain-32 9193 4575 -50.23%
BenchmarkHasher128/262144/avx2/seed-32 9221 4575 -50.38%
BenchmarkHasher128/262144/sse2/plain-32 13593 9116 -32.94%
BenchmarkHasher128/262144/sse2/seed-32 13620 9134 -32.94%
BenchmarkHasher128/1048576/go/plain-32 122948 104575 -14.94%
BenchmarkHasher128/1048576/go/seed-32 125890 106158 -15.67%
BenchmarkHasher128/1048576/avx2/plain-32 39954 19196 -51.95%
BenchmarkHasher128/1048576/avx2/seed-32 40129 19288 -51.94%
BenchmarkHasher128/1048576/sse2/plain-32 58118 38131 -34.39%
BenchmarkHasher128/1048576/sse2/seed-32 57932 37946 -34.50%
BenchmarkHasher128/4194304/go/plain-32 493451 416740 -15.55%
BenchmarkHasher128/4194304/go/seed-32 502356 422838 -15.83%
BenchmarkHasher128/4194304/avx2/plain-32 160109 77045 -51.88%
BenchmarkHasher128/4194304/avx2/seed-32 160445 77259 -51.85%
BenchmarkHasher128/4194304/sse2/plain-32 231687 151870 -34.45%
BenchmarkHasher128/4194304/sse2/seed-32 232476 151958 -34.63%
BenchmarkHasher128/16777216/go/plain-32 2418268 1979228 -18.16%
BenchmarkHasher128/16777216/go/seed-32 2594129 2010799 -22.49%
BenchmarkHasher128/16777216/avx2/plain-32 1124619 615349 -45.28%
BenchmarkHasher128/16777216/avx2/seed-32 1028934 601365 -41.55%
BenchmarkHasher128/16777216/sse2/plain-32 1440442 812778 -43.57%
BenchmarkHasher128/16777216/sse2/seed-32 1400430 844471 -39.70%
BenchmarkHasher128/67108864/go/plain-32 10780787 8585564 -20.36%
BenchmarkHasher128/67108864/go/seed-32 11792892 8754885 -25.76%
BenchmarkHasher128/67108864/avx2/plain-32 6311541 3343733 -47.02%
BenchmarkHasher128/67108864/avx2/seed-32 6402239 3303074 -48.41%
BenchmarkHasher128/67108864/sse2/plain-32 7678965 4170337 -45.69%
BenchmarkHasher128/67108864/sse2/seed-32 7689645 4219645 -45.13%
BenchmarkHasher128/268435456/go/plain-32 42878115 34154168 -20.35%
BenchmarkHasher128/268435456/go/seed-32 46528692 34885655 -25.02%
BenchmarkHasher128/268435456/avx2/plain-32 25074578 13406721 -46.53%
BenchmarkHasher128/268435456/avx2/seed-32 24934115 13445259 -46.08%
BenchmarkHasher128/268435456/sse2/plain-32 29948956 16646546 -44.42%
BenchmarkHasher128/268435456/sse2/seed-32 30070987 16912347 -43.76%
benchmark old MB/s new MB/s speedup
BenchmarkHasher64/16/go/plain-32 1764.00 1713.51 0.97x
BenchmarkHasher64/16/go/seed-32 1613.58 1528.33 0.95x
BenchmarkHasher64/16/avx2/plain-32 1768.70 1714.76 0.97x
BenchmarkHasher64/16/avx2/seed-32 1614.50 1526.80 0.95x
BenchmarkHasher64/16/sse2/plain-32 1763.91 1714.66 0.97x
BenchmarkHasher64/16/sse2/seed-32 1604.27 1521.86 0.95x
BenchmarkHasher64/64/go/plain-32 5204.80 5029.50 0.97x
BenchmarkHasher64/64/go/seed-32 4853.09 4523.96 0.93x
BenchmarkHasher64/64/avx2/plain-32 5227.29 5034.26 0.96x
BenchmarkHasher64/64/avx2/seed-32 4819.08 4484.34 0.93x
BenchmarkHasher64/64/sse2/plain-32 5226.63 5032.63 0.96x
BenchmarkHasher64/64/sse2/seed-32 4855.94 4544.39 0.94x
BenchmarkHasher64/256/go/plain-32 6047.48 5813.67 0.96x
BenchmarkHasher64/256/go/seed-32 4369.14 4270.74 0.98x
BenchmarkHasher64/256/avx2/plain-32 9337.41 9047.93 0.97x
BenchmarkHasher64/256/avx2/seed-32 6353.36 6207.21 0.98x
BenchmarkHasher64/256/sse2/plain-32 9315.38 9018.63 0.97x
BenchmarkHasher64/256/sse2/seed-32 6018.71 5828.95 0.97x
BenchmarkHasher64/1024/go/plain-32 8635.71 8428.97 0.98x
BenchmarkHasher64/1024/go/seed-32 7454.75 7266.67 0.97x
BenchmarkHasher64/1024/avx2/plain-32 23853.72 22997.97 0.96x
BenchmarkHasher64/1024/avx2/seed-32 18306.73 17793.62 0.97x
BenchmarkHasher64/1024/sse2/plain-32 16516.53 15944.72 0.97x
BenchmarkHasher64/1024/sse2/seed-32 13910.47 13521.23 0.97x
BenchmarkHasher64/4096/go/plain-32 9119.75 9579.02 1.05x
BenchmarkHasher64/4096/go/seed-32 8947.12 9422.36 1.05x
BenchmarkHasher64/4096/avx2/plain-32 32181.53 42184.73 1.31x
BenchmarkHasher64/4096/avx2/seed-32 32074.71 42225.71 1.32x
BenchmarkHasher64/4096/sse2/plain-32 21303.07 24747.53 1.16x
BenchmarkHasher64/4096/sse2/seed-32 21276.46 24666.13 1.16x
BenchmarkHasher64/16384/go/plain-32 9115.98 9972.01 1.09x
BenchmarkHasher64/16384/go/seed-32 8928.75 9757.02 1.09x
BenchmarkHasher64/16384/avx2/plain-32 34062.97 53988.74 1.58x
BenchmarkHasher64/16384/avx2/seed-32 34123.45 53868.80 1.58x
BenchmarkHasher64/16384/sse2/plain-32 21338.09 27515.09 1.29x
BenchmarkHasher64/16384/sse2/seed-32 21087.91 27549.92 1.31x
BenchmarkHasher64/65536/go/plain-32 8727.95 10050.46 1.15x
BenchmarkHasher64/65536/go/seed-32 8566.17 9928.04 1.16x
BenchmarkHasher64/65536/avx2/plain-32 28432.92 55810.43 1.96x
BenchmarkHasher64/65536/avx2/seed-32 28601.55 55723.45 1.95x
BenchmarkHasher64/65536/sse2/plain-32 19249.84 28414.07 1.48x
BenchmarkHasher64/65536/sse2/seed-32 19244.80 28260.91 1.47x
BenchmarkHasher64/262144/go/plain-32 8755.57 10095.42 1.15x
BenchmarkHasher64/262144/go/seed-32 8600.97 9959.38 1.16x
BenchmarkHasher64/262144/avx2/plain-32 28535.51 57275.09 2.01x
BenchmarkHasher64/262144/avx2/seed-32 28554.48 57084.79 2.00x
BenchmarkHasher64/262144/sse2/plain-32 19258.13 28668.38 1.49x
BenchmarkHasher64/262144/sse2/seed-32 19278.77 28731.63 1.49x
BenchmarkHasher64/1048576/go/plain-32 8574.75 10056.76 1.17x
BenchmarkHasher64/1048576/go/seed-32 8409.34 9918.04 1.18x
BenchmarkHasher64/1048576/avx2/plain-32 26263.21 54635.47 2.08x
BenchmarkHasher64/1048576/avx2/seed-32 26213.33 54472.66 2.08x
BenchmarkHasher64/1048576/sse2/plain-32 18120.51 27608.67 1.52x
BenchmarkHasher64/1048576/sse2/seed-32 18133.90 27614.45 1.52x
BenchmarkHasher64/4194304/go/plain-32 8561.68 9603.78 1.12x
BenchmarkHasher64/4194304/go/seed-32 8418.30 9453.12 1.12x
BenchmarkHasher64/4194304/avx2/plain-32 26265.73 40407.47 1.54x
BenchmarkHasher64/4194304/avx2/seed-32 26179.12 40098.91 1.53x
BenchmarkHasher64/4194304/sse2/plain-32 18113.05 24433.71 1.35x
BenchmarkHasher64/4194304/sse2/seed-32 18111.30 24460.51 1.35x
BenchmarkHasher64/16777216/go/plain-32 6935.40 7730.04 1.11x
BenchmarkHasher64/16777216/go/seed-32 6418.04 7639.90 1.19x
BenchmarkHasher64/16777216/avx2/plain-32 14940.81 20645.77 1.38x
BenchmarkHasher64/16777216/avx2/seed-32 16273.67 20410.56 1.25x
BenchmarkHasher64/16777216/sse2/plain-32 11605.96 16418.97 1.41x
BenchmarkHasher64/16777216/sse2/seed-32 11705.57 16200.29 1.38x
BenchmarkHasher64/67108864/go/plain-32 6261.68 7657.40 1.22x
BenchmarkHasher64/67108864/go/seed-32 5704.26 7565.96 1.33x
BenchmarkHasher64/67108864/avx2/plain-32 10633.11 19662.52 1.85x
BenchmarkHasher64/67108864/avx2/seed-32 10613.29 20209.08 1.90x
BenchmarkHasher64/67108864/sse2/plain-32 8891.78 15974.82 1.80x
BenchmarkHasher64/67108864/sse2/seed-32 8870.16 16137.15 1.82x
BenchmarkHasher64/268435456/go/plain-32 6257.22 7711.04 1.23x
BenchmarkHasher64/268435456/go/seed-32 5691.14 7570.08 1.33x
BenchmarkHasher64/268435456/avx2/plain-32 10683.77 19272.82 1.80x
BenchmarkHasher64/268435456/avx2/seed-32 10699.43 19263.49 1.80x
BenchmarkHasher64/268435456/sse2/plain-32 8912.45 15513.19 1.74x
BenchmarkHasher64/268435456/sse2/seed-32 8860.09 15403.57 1.74x
BenchmarkHasher128/16/go/plain-32 1474.02 1449.19 0.98x
BenchmarkHasher128/16/go/seed-32 1495.32 1434.23 0.96x
BenchmarkHasher128/16/avx2/plain-32 1470.89 1457.89 0.99x
BenchmarkHasher128/16/avx2/seed-32 1499.01 1465.41 0.98x
BenchmarkHasher128/16/sse2/plain-32 1461.28 1458.72 1.00x
BenchmarkHasher128/16/sse2/seed-32 1499.95 1463.88 0.98x
BenchmarkHasher128/64/go/plain-32 4407.18 4337.46 0.98x
BenchmarkHasher128/64/go/seed-32 4240.79 4202.85 0.99x
BenchmarkHasher128/64/avx2/plain-32 4419.11 4345.29 0.98x
BenchmarkHasher128/64/avx2/seed-32 4247.97 4203.63 0.99x
BenchmarkHasher128/64/sse2/plain-32 4419.75 4345.99 0.98x
BenchmarkHasher128/64/sse2/seed-32 4247.07 4200.67 0.99x
BenchmarkHasher128/256/go/plain-32 5454.05 4091.20 0.75x
BenchmarkHasher128/256/go/seed-32 4001.88 3974.04 0.99x
BenchmarkHasher128/256/avx2/plain-32 8027.23 7874.67 0.98x
BenchmarkHasher128/256/avx2/seed-32 4923.99 5767.46 1.17x
BenchmarkHasher128/256/sse2/plain-32 7814.77 7723.52 0.99x
BenchmarkHasher128/256/sse2/seed-32 5451.53 5334.89 0.98x
BenchmarkHasher128/1024/go/plain-32 8372.64 7092.17 0.85x
BenchmarkHasher128/1024/go/seed-32 7180.67 7150.69 1.00x
BenchmarkHasher128/1024/avx2/plain-32 21347.95 21166.06 0.99x
BenchmarkHasher128/1024/avx2/seed-32 12562.16 16719.68 1.33x
BenchmarkHasher128/1024/sse2/plain-32 15920.16 15650.63 0.98x
BenchmarkHasher128/1024/sse2/seed-32 13129.72 13051.17 0.99x
BenchmarkHasher128/4096/go/plain-32 8867.27 9701.22 1.09x
BenchmarkHasher128/4096/go/seed-32 8881.26 9481.03 1.07x
BenchmarkHasher128/4096/avx2/plain-32 31427.84 42747.22 1.36x
BenchmarkHasher128/4096/avx2/seed-32 31226.79 42525.99 1.36x
BenchmarkHasher128/4096/sse2/plain-32 20828.49 23278.00 1.12x
BenchmarkHasher128/4096/sse2/seed-32 19411.64 22759.31 1.17x
BenchmarkHasher128/16384/go/plain-32 8986.91 9994.51 1.11x
BenchmarkHasher128/16384/go/seed-32 8903.20 9772.52 1.10x
BenchmarkHasher128/16384/avx2/plain-32 33923.63 53540.25 1.58x
BenchmarkHasher128/16384/avx2/seed-32 33830.86 53884.99 1.59x
BenchmarkHasher128/16384/sse2/plain-32 21247.46 27164.64 1.28x
BenchmarkHasher128/16384/sse2/seed-32 20642.08 27000.65 1.31x
BenchmarkHasher128/65536/go/plain-32 8688.00 10108.71 1.16x
BenchmarkHasher128/65536/go/seed-32 8579.84 9947.65 1.16x
BenchmarkHasher128/65536/avx2/plain-32 28435.64 55703.99 1.96x
BenchmarkHasher128/65536/avx2/seed-32 28413.78 55415.59 1.95x
BenchmarkHasher128/65536/sse2/plain-32 19114.11 28277.07 1.48x
BenchmarkHasher128/65536/sse2/seed-32 19037.24 28251.04 1.48x
BenchmarkHasher128/262144/go/plain-32 8747.07 10122.95 1.16x
BenchmarkHasher128/262144/go/seed-32 8605.83 9967.37 1.16x
BenchmarkHasher128/262144/avx2/plain-32 28515.67 57295.03 2.01x
BenchmarkHasher128/262144/avx2/seed-32 28428.01 57295.63 2.02x
BenchmarkHasher128/262144/sse2/plain-32 19285.06 28757.30 1.49x
BenchmarkHasher128/262144/sse2/seed-32 19246.48 28699.81 1.49x
BenchmarkHasher128/1048576/go/plain-32 8528.63 10027.02 1.18x
BenchmarkHasher128/1048576/go/seed-32 8329.33 9877.55 1.19x
BenchmarkHasher128/1048576/avx2/plain-32 26244.61 54625.49 2.08x
BenchmarkHasher128/1048576/avx2/seed-32 26130.39 54363.13 2.08x
BenchmarkHasher128/1048576/sse2/plain-32 18042.18 27499.11 1.52x
BenchmarkHasher128/1048576/sse2/seed-32 18100.11 27633.14 1.53x
BenchmarkHasher128/4194304/go/plain-32 8499.94 10064.56 1.18x
BenchmarkHasher128/4194304/go/seed-32 8349.27 9919.40 1.19x
BenchmarkHasher128/4194304/avx2/plain-32 26196.62 54439.32 2.08x
BenchmarkHasher128/4194304/avx2/seed-32 26141.62 54288.58 2.08x
BenchmarkHasher128/4194304/sse2/plain-32 18103.36 27617.66 1.53x
BenchmarkHasher128/4194304/sse2/seed-32 18041.90 27601.77 1.53x
BenchmarkHasher128/16777216/go/plain-32 6937.70 8476.65 1.22x
BenchmarkHasher128/16777216/go/seed-32 6467.38 8343.55 1.29x
BenchmarkHasher128/16777216/avx2/plain-32 14918.13 27264.55 1.83x
BenchmarkHasher128/16777216/avx2/seed-32 16305.44 27898.56 1.71x
BenchmarkHasher128/16777216/sse2/plain-32 11647.27 20641.82 1.77x
BenchmarkHasher128/16777216/sse2/seed-32 11980.05 19867.14 1.66x
BenchmarkHasher128/67108864/go/plain-32 6224.86 7816.48 1.26x
BenchmarkHasher128/67108864/go/seed-32 5690.62 7665.30 1.35x
BenchmarkHasher128/67108864/avx2/plain-32 10632.72 20070.04 1.89x
BenchmarkHasher128/67108864/avx2/seed-32 10482.09 20317.09 1.94x
BenchmarkHasher128/67108864/sse2/plain-32 8739.31 16091.95 1.84x
BenchmarkHasher128/67108864/sse2/seed-32 8727.17 15903.91 1.82x
BenchmarkHasher128/268435456/go/plain-32 6260.43 7859.52 1.26x
BenchmarkHasher128/268435456/go/seed-32 5769.25 7694.72 1.33x
BenchmarkHasher128/268435456/avx2/plain-32 10705.48 20022.45 1.87x
BenchmarkHasher128/268435456/avx2/seed-32 10765.79 19965.06 1.85x
BenchmarkHasher128/268435456/sse2/plain-32 8963.10 16125.60 1.80x
BenchmarkHasher128/268435456/sse2/seed-32 8926.73 15872.16 1.78x
Updated version of #4 that duplicates code for seed support to keep speed of unseeded operations.
64 bits ported from #4, and added to Hasher. 128 bits: New code.
The Hasher can be reused and keeps the key state.