]> Cypherpunks repositories - gostls13.git/commit
strconv: speed up atoi for common cases
authorMartin Möhrmann <martisch@uos.de>
Tue, 6 Jan 2015 18:48:31 +0000 (19:48 +0100)
committerRobert Griesemer <gri@golang.org>
Thu, 8 Jan 2015 20:58:26 +0000 (20:58 +0000)
commit06ed8f0df76e9b0256de286392d42d1ea7dec809
treedaa3419230a2bb46e88dd6bd211ffca14442a12b
parentdb7fd1c1420d5ef2f874f40c0349b35007568c77
strconv: speed up atoi for common cases

Add compile time constants for bases 10 and 16 instead of computing the cutoff
value on every invocation of ParseUint by a division.

Reduce usage of slice operations.

amd64:
benchmark              old ns/op     new ns/op     delta
BenchmarkAtoi          44.6          36.0          -19.28%
BenchmarkAtoiNeg       44.2          38.9          -11.99%
BenchmarkAtoi64        72.5          56.7          -21.79%
BenchmarkAtoi64Neg     66.1          58.6          -11.35%

386:
benchmark              old ns/op     new ns/op     delta
BenchmarkAtoi          86.6          73.0          -15.70%
BenchmarkAtoiNeg       86.6          72.3          -16.51%
BenchmarkAtoi64        126           108           -14.29%
BenchmarkAtoi64Neg     126           108           -14.29%

Change-Id: I0a271132120d776c97bb4ed1099793c73e159893
Reviewed-on: https://go-review.googlesource.com/2460
Reviewed-by: Robert Griesemer <gri@golang.org>
src/strconv/atoi.go