]> Cypherpunks repositories - gostls13.git/commit
strconv: speedup AppendFloat/FormatFloat.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Sun, 5 Aug 2012 18:30:13 +0000 (20:30 +0200)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Sun, 5 Aug 2012 18:30:13 +0000 (20:30 +0200)
commitff03482fd6c38ac41835bef2dfd75f5ecc41eb1d
tree9c0c82e2e987390e157674bda2ac860f7533d375
parent74db9d298b1b5aedd1d63f0a7257e4b51e21ca0c
strconv: speedup AppendFloat/FormatFloat.

The improvement is obtained by eliminating the zero
initialization of a large structure that is only
needed when the fast path fails.

Also add a missing roundtrip test for float32s.

benchmark                              old ns/op    new ns/op    delta
BenchmarkAppendFloatDecimal                  301          180  -40.20%
BenchmarkAppendFloat                         486          388  -20.16%
BenchmarkAppendFloatExp                      492          383  -22.15%
BenchmarkAppendFloatNegExp                   478          370  -22.59%
BenchmarkAppendFloatBig                      650          541  -16.77%
BenchmarkAppendFloat32Integer                308          180  -41.56%
BenchmarkAppendFloat32ExactFraction          449          333  -25.84%
BenchmarkAppendFloat32Point                  494          390  -21.05%
BenchmarkAppendFloat32Exp                    488          387  -20.70%
BenchmarkAppendFloat32NegExp                 488          378  -22.54%

R=r, rsc
CC=golang-dev, remy
https://golang.org/cl/6346081
src/pkg/strconv/atof_test.go
src/pkg/strconv/extfloat.go
src/pkg/strconv/ftoa.go