• Martin Möhrmann's avatar
    strconv: optimize decimal to string conversion · 241583a4
    Martin Möhrmann authored
    Avoid the decimal lookup in digits array and compute the decimal character value directly.
    Reduce calls to 64bit division on 32bit plattforms by splitting conversion into smaller blocks.
    Convert value to uintptr type when it can be represented by uintptr.
    
    on darwin/386
    
    benchmark               old ns/op     new ns/op     delta
    BenchmarkFormatInt      8352          7466          -10.61%
    BenchmarkAppendInt      4281          3401          -20.56%
    BenchmarkFormatUint     2785          2251          -19.17%
    BenchmarkAppendUint     1770          1223          -30.90%
    
    on darwin/amd64
    
    benchmark               old ns/op     new ns/op     delta
    BenchmarkFormatInt      5531          5492          -0.71%
    BenchmarkAppendInt      2435          2295          -5.75%
    BenchmarkFormatUint     1628          1569          -3.62%
    BenchmarkAppendUint     726           750           +3.31%
    
    Change-Id: Ifca281cbdd62ab7d7bd4b077a96da99eb12cf209
    Reviewed-on: https://go-review.googlesource.com/2105Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
    241583a4
itoa.go 3.26 KB