mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
Hashing is almost twice as fast compared to default bigcache hash function. BenchmarkXXHash64-12 19.1 ns/op BenchmarkFNV64-12 35.7 ns/op Benchmarks are available to reproduce results: https://gist.github.com/crackcomm/68e284c5f33d50c5a58573fbbea673cd
14 lines
563 B
Go
14 lines
563 B
Go
// +build go1.9
|
|
|
|
package xxhash
|
|
|
|
import "math/bits"
|
|
|
|
func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) }
|
|
func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) }
|
|
func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }
|
|
func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }
|
|
func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }
|
|
func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }
|
|
func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }
|
|
func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }
|