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
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
if u >= 10 {
i--
q := u / 10
- a[i] = digits[u-q*10]
+ a[i] = digits[uintptr(u-q*10)]
u = q
}
b := uint64(base)
for u >= b {
i--
- a[i] = digits[u%b]
+ a[i] = digits[uintptr(u%b)]
u /= b
}
}