• Rémy Oudompheng's avatar
    strconv: extend Grisu3 algorithm to float32. · d6147d81
    Rémy Oudompheng authored
    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
    d6147d81
Name
Last commit
Last update
..
atob.go Loading commit data...
atob_test.go Loading commit data...
atof.go Loading commit data...
atof_test.go Loading commit data...
atoi.go Loading commit data...
atoi_test.go Loading commit data...
decimal.go Loading commit data...
decimal_test.go Loading commit data...
extfloat.go Loading commit data...
fp_test.go Loading commit data...
ftoa.go Loading commit data...
ftoa_test.go Loading commit data...
internal_test.go Loading commit data...
isprint.go Loading commit data...
itoa.go Loading commit data...
itoa_test.go Loading commit data...
makeisprint.go Loading commit data...
quote.go Loading commit data...
quote_test.go Loading commit data...
strconv_test.go Loading commit data...
testfp.txt Loading commit data...