diff options
| author | Nigel Tao <nigeltao@golang.org> | 2012-05-25 09:58:38 +1000 |
|---|---|---|
| committer | Nigel Tao <nigeltao@golang.org> | 2012-05-25 09:58:38 +1000 |
| commit | 60ffae25bc1e8ddacaa52952683bfaf6caebc9fd (patch) | |
| tree | d27ad5f658a5711282efff5275d17c52f0b3cbb3 /src/pkg/runtime/hashmap.c | |
| parent | 184209787c5904cb670857c7c1ef3a2fd10718e5 (diff) | |
| download | go-60ffae25bc1e8ddacaa52952683bfaf6caebc9fd.tar.xz | |
hash/adler32: optimize.
The bulk of the gains come from hoisting the modulo ops outside of
the inner loop.
Reducing the digest type from 8 bytes to 4 bytes gains another 1% on
the hash/adler32 micro-benchmark.
Benchmarks for $GOOS,$GOARCH = linux,amd64 below.
hash/adler32 benchmark:
benchmark old ns/op new ns/op delta
BenchmarkAdler32KB 1660 1364 -17.83%
image/png benchmark:
benchmark old ns/op new ns/op delta
BenchmarkDecodeGray 2466909 2425539 -1.68%
BenchmarkDecodeNRGBAGradient 9884500 9751705 -1.34%
BenchmarkDecodeNRGBAOpaque 8511615 8379800 -1.55%
BenchmarkDecodePaletted 1366683 1330677 -2.63%
BenchmarkDecodeRGB 6987496 6884974 -1.47%
BenchmarkEncodePaletted 6292408 6040052 -4.01%
BenchmarkEncodeRGBOpaque 19780680 19178440 -3.04%
BenchmarkEncodeRGBA 80738600 79076800 -2.06%
Wall time for Denis Cheremisov's PNG-decoding program given in
https://groups.google.com/group/golang-nuts/browse_thread/thread/22aa8a05040fdd49
Before: 2.44s
After: 2.26s
Delta: -7%
R=rsc
CC=golang-dev
https://golang.org/cl/6251044
Diffstat (limited to 'src/pkg/runtime/hashmap.c')
0 files changed, 0 insertions, 0 deletions
