mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: a better fallback hash
For arm and powerpc, as well as x86 without aes instructions. Contains a mixture of ideas from cityhash and xxhash. Compared to our old fallback on ARM, it's ~no slower on small objects and up to ~50% faster on large objects. More importantly, it is a much better hash function and thus has less chance of bad behavior. Fixes #8737 benchmark old ns/op new ns/op delta BenchmarkHash5 173 181 +4.62% BenchmarkHash16 252 212 -15.87% BenchmarkHash64 575 419 -27.13% BenchmarkHash1024 7173 3995 -44.31% BenchmarkHash65536 516940 313173 -39.42% BenchmarkHashStringSpeed 300 279 -7.00% BenchmarkHashBytesSpeed 478 424 -11.30% BenchmarkHashInt32Speed 217 207 -4.61% BenchmarkHashInt64Speed 262 231 -11.83% BenchmarkHashStringArraySpeed 609 631 +3.61% Change-Id: I0a9335028f32b10ad484966e3019987973afd3eb Reviewed-on: https://go-review.googlesource.com/1360 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
fbc56cf050
commit
cda0ea1c0e
7 changed files with 229 additions and 32 deletions
|
|
@ -103,7 +103,6 @@ func RunSchedLocalQueueStealTest() {
|
|||
systemstack(testSchedLocalQueueSteal)
|
||||
}
|
||||
|
||||
var HaveGoodHash = haveGoodHash
|
||||
var StringHash = stringHash
|
||||
var BytesHash = bytesHash
|
||||
var Int32Hash = int32Hash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue