go /
go /
d6147d8102b095caac3267f9864a4025650c43f8 strconv: extend Grisu3 algorithm to float32.
Also improve extfloat.Normalize to obtain a modest performance
gain in parsing, and add a shortcut path for exact integers.
benchmark old ns/op new ns/op delta
BenchmarkAtof64Decimal 73 73 -0.54%
BenchmarkAtof64Float 91 91 -0.54%
BenchmarkAtof64FloatExp 198 180 -9.09%
BenchmarkAtof64Big 307 308 +0.33%
BenchmarkAtof32Decimal 72 72 +0.42%
BenchmarkAtof32Float 83 83 -0.72%
BenchmarkAtof32FloatExp 212 186 -12.26%
BenchmarkAtof32Random 262 250 -4.58%
BenchmarkAppendFloatDecimal 474 305 -35.65%
BenchmarkAppendFloat 497 489 -1.61%
BenchmarkAppendFloatExp 493 483 -2.03%
BenchmarkAppendFloatNegExp 481 481 +0.00%
BenchmarkAppendFloatBig 667 652 -2.25%
BenchmarkAppendFloat32Integer 338 307 -9.17%
BenchmarkAppendFloat32ExactFraction 364 439 +20.60%
BenchmarkAppendFloat32Point 1299 490 -62.28%
BenchmarkAppendFloat32Exp 2593 489 -81.14%
BenchmarkAppendFloat32NegExp 5116 481 -90.60%
R=rsc, r
CC=golang-dev, remy
https://golang.org/cl/6303087
4 files changed