]> Cypherpunks repositories - gostls13.git/commit
encoding/hex: simplify decoder arithmetic
authorDaniel Martí <mvdan@mvdan.cc>
Sun, 25 Nov 2018 23:22:11 +0000 (23:22 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Sat, 2 Mar 2019 16:48:05 +0000 (16:48 +0000)
commitaa5165d62cf623230dd820afe2bdba92bd15beeb
tree0da71b97d631fb7d5886b88bb8b2833d32954478
parent337a1bde026f227fa9536653cc51efa13970657a
encoding/hex: simplify decoder arithmetic

Remove all multiplications and divisions from the main decoding loop.

name            old time/op   new time/op   delta
Decode/256-8      323ns ± 0%    293ns ± 0%   -9.29%  (p=0.000 n=5+4)
Decode/1024-8    1.26µs ± 0%   1.14µs ± 0%   -9.48%  (p=0.000 n=6+5)
Decode/4096-8    4.99µs ± 0%   4.51µs ± 0%   -9.55%  (p=0.002 n=6+6)
Decode/16384-8   20.0µs ± 0%   18.1µs ± 0%   -9.54%  (p=0.002 n=6+6)

name            old speed     new speed     delta
Decode/256-8    791MB/s ± 0%  872MB/s ± 0%  +10.34%  (p=0.002 n=6+6)
Decode/1024-8   814MB/s ± 0%  899MB/s ± 0%  +10.48%  (p=0.004 n=6+5)
Decode/4096-8   821MB/s ± 0%  908MB/s ± 0%  +10.55%  (p=0.002 n=6+6)
Decode/16384-8  821MB/s ± 0%  908MB/s ± 0%  +10.54%  (p=0.002 n=6+6)

Change-Id: Ie9f91242ce04c130a77c1184379e3b9de38fe713
Reviewed-on: https://go-review.googlesource.com/c/151199
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/encoding/hex/hex.go
src/encoding/hex/hex_test.go