• Uttam C Pawar's avatar
    bytes: improve Compare function on amd64 for large byte arrays · 32add8d7
    Uttam C Pawar authored
    This patch contains only loop unrolling change for size > 63B
    
    Following are the performance numbers for various sizes on
    On Haswell based system: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz.
    
    benchcmp go.head.8.25.15.txt go.head.8.25.15.opt.txt
    benchmark                       old ns/op     new ns/op     delta
    BenchmarkBytesCompare1-4        5.37          5.37          +0.00%
    BenchmarkBytesCompare2-4        5.37          5.38          +0.19%
    BenchmarkBytesCompare4-4        5.37          5.37          +0.00%
    BenchmarkBytesCompare8-4        4.42          4.38          -0.90%
    BenchmarkBytesCompare16-4       4.27          4.45          +4.22%
    BenchmarkBytesCompare32-4       5.30          5.36          +1.13%
    BenchmarkBytesCompare64-4       6.93          6.78          -2.16%
    BenchmarkBytesCompare128-4      10.3          9.50          -7.77%
    BenchmarkBytesCompare256-4      17.1          13.8          -19.30%
    BenchmarkBytesCompare512-4      31.3          22.1          -29.39%
    BenchmarkBytesCompare1024-4     62.5          39.0          -37.60%
    BenchmarkBytesCompare2048-4     112           73.2          -34.64%
    
    Change-Id: I4eeb1c22732fd62cbac97ba757b0d29f648d4ef1
    Reviewed-on: https://go-review.googlesource.com/11871Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    32add8d7
bytes_test.go 32.5 KB