• Rob Pike's avatar
    fmt: speed up 10-20% · 53bc1944
    Rob Pike authored
    The check for Stringer etc. can only fire if the test is not a builtin, so avoid
    the expensive check if we know there's no chance.
    Also put in a fast path for pad, which saves a more modest amount.
    
    benchmark                      old ns/op    new ns/op    delta
    BenchmarkSprintfEmpty                148          152   +2.70%
    BenchmarkSprintfString               585          497  -15.04%
    BenchmarkSprintfInt                  441          396  -10.20%
    BenchmarkSprintfIntInt               718          603  -16.02%
    BenchmarkSprintfPrefixedInt          676          621   -8.14%
    BenchmarkSprintfFloat               1003          953   -4.99%
    BenchmarkManyArgs                   2945         2312  -21.49%
    BenchmarkScanInts                1704152      1734441   +1.78%
    BenchmarkScanRecursiveInt        1837397      1828920   -0.46%
    
    R=golang-dev, bradfitz
    CC=golang-dev
    https://golang.org/cl/6245068
    53bc1944
Name
Last commit
Last update
..
cmd Loading commit data...
lib9 Loading commit data...
libbio Loading commit data...
libmach Loading commit data...
pkg Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...
sudo.bash Loading commit data...