• Keith Randall's avatar
    runtime: a better fallback hash · cda0ea1c
    Keith Randall authored
    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/1360Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    cda0ea1c
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...