• Dave Cheney's avatar
    runtime: add runtime.cmpstring and bytes.Compare · e2543ef6
    Dave Cheney authored
    Update #10007
    
    Implement runtime.cmpstring and bytes.Compare in asm for arm.
    
    benchmark                                old ns/op     new ns/op     delta
    BenchmarkCompareBytesEqual               254           91.4          -64.02%
    BenchmarkCompareBytesToNil               41.5          37.6          -9.40%
    BenchmarkCompareBytesEmpty               40.7          37.6          -7.62%
    BenchmarkCompareBytesIdentical           255           96.3          -62.24%
    BenchmarkCompareBytesSameLength          125           60.9          -51.28%
    BenchmarkCompareBytesDifferentLength     133           60.9          -54.21%
    BenchmarkCompareBytesBigUnaligned        17985879      5669706       -68.48%
    BenchmarkCompareBytesBig                 17097634      4926798       -71.18%
    BenchmarkCompareBytesBigIdentical        16861941      4389206       -73.97%
    
    benchmark                             old MB/s     new MB/s     speedup
    BenchmarkCompareBytesBigUnaligned     58.30        184.95       3.17x
    BenchmarkCompareBytesBig              61.33        212.83       3.47x
    BenchmarkCompareBytesBigIdentical     62.19        238.90       3.84x
    
    This is a collaboration between Josh Bleecher Snyder and myself.
    
    Change-Id: Ib3944b8c410d0e12135c2ba9459bfe131df48edd
    Reviewed-on: https://go-review.googlesource.com/8010Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    e2543ef6
noasm.go 950 Bytes