• Ilya Tocar's avatar
    compress/bzip2: remove bit-tricks · 9eb21948
    Ilya Tocar authored
    Since compiler is now able to generate conditional moves, we can replace
    bit-tricks with simple if/else. This even results in slightly better performance:
    
    name            old time/op    new time/op    delta
    DecodeDigits-6    13.4ms ± 4%    13.0ms ± 2%  -2.63%  (p=0.003 n=10+10)
    DecodeTwain-6     37.5ms ± 1%    36.3ms ± 1%  -3.03%  (p=0.000 n=10+9)
    DecodeRand-6      4.23ms ± 1%    4.07ms ± 1%  -3.67%  (p=0.000 n=10+9)
    
    name            old speed      new speed      delta
    DecodeDigits-6  7.47MB/s ± 4%  7.67MB/s ± 2%  +2.69%  (p=0.002 n=10+10)
    DecodeTwain-6   10.4MB/s ± 1%  10.7MB/s ± 1%  +3.25%  (p=0.000 n=10+8)
    DecodeRand-6    3.87MB/s ± 1%  4.03MB/s ± 2%  +4.08%  (p=0.000 n=10+10)
    diff --git a/src/compress/bzip2/huffman.go b/src/compress/bzip2/huffman.go
    
    Change-Id: Ie96ef1a9e07013b07e78f22cdccd531f3341caca
    Reviewed-on: https://go-review.googlesource.com/102015
    Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
    Reviewed-by: 's avatarJoe Tsai <joetsai@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    9eb21948
huffman.go 6.77 KB