]> Cypherpunks repositories - gostls13.git/commit
strconv: optimize decimal to string conversion
authorMartin Möhrmann <martisch@uos.de>
Thu, 25 Dec 2014 18:30:53 +0000 (19:30 +0100)
committerRobert Griesemer <gri@golang.org>
Tue, 30 Dec 2014 23:28:02 +0000 (23:28 +0000)
commit241583a432803e02992140b81443d4a452f1ce2f
treeed00f02bfe1aab7fcf7f312c0545311fb47d6306
parentfcd61eb07e11f856e62de3f24383f51627f25009
strconv: optimize decimal to string conversion

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/2105
Reviewed-by: Robert Griesemer <gri@golang.org>
src/strconv/itoa.go