1
0
mirror of https://github.com/golang/go synced 2024-11-24 23:57:57 -07:00

strconv: slightly faster int conversion for GOARCH=386

benchmark                           old ns/op    new ns/op    delta
strconv_test.BenchmarkFormatInt         12198        12031   -1.37%
strconv_test.BenchmarkAppendInt          9268         9153   -1.24%
strconv_test.BenchmarkFormatUint         3538         3429   -3.08%
strconv_test.BenchmarkAppendUint         3133         3062   -2.27%

No performance difference for GOARCH=amd64.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5488089
This commit is contained in:
Robert Griesemer 2011-12-14 11:14:10 -08:00
parent 34c7765fe5
commit 6890afd9a3

View File

@ -76,7 +76,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
for u >= 100 {
i -= 2
q := u / 100
j := u - q*100
j := uintptr(u - q*100)
a[i+1] = digits01[j]
a[i+0] = digits10[j]
u = q
@ -84,7 +84,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
if u >= 10 {
i--
q := u / 10
a[i] = digits[u-q*10]
a[i] = digits[uintptr(u-q*10)]
u = q
}
@ -103,7 +103,7 @@ func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s
b := uint64(base)
for u >= b {
i--
a[i] = digits[u%b]
a[i] = digits[uintptr(u%b)]
u /= b
}
}