benchall
benchall copied to clipboard
Go compiler benchmarks as a testing.B
Benchall
A small test harness for benchmarking the compile speed improvements from Go 1.9 to tip as a standard testing.B.
Prerequisites
benchall.bash requires Go 1.9 and Go built from tip to be installed. The respective go commands should be in your path as such
% ls -al $(which go1.9 go.tip)
lrwxrwxrwx 1 dfc dfc 22 Sep 7 21:29 /home/dfc/bin/go1.9 -> /home/dfc/go1.9/bin/go
lrwxrwxrwx 1 dfc dfc 12 Mar 15 2017 /home/dfc/bin/go.tip -> ../go/bin/go
benchall.bash also requires benchstat for a comparison of the final numbers
% go get -u golang.org/x/perf/cmd/benchstat
benchall.bash will attempt to check that all the prerequisites are installed.
Execution
benchall.bash runs 10 rounds of each benchmark, twice with Go 1.9 and twice with tip. Only the second pass of each compiler is kept. This is intended to avoid the effects of processor scaling.
% bash benchall.bash
Takes between 30 and 45 minutes.
At the end of the run benchall.bash will run benchstat to compare the results. If you loose that output you can run benchstat directly without re-running the benchmarks.
% benchstat go1.9.txt go.tip.txt
name old time/op new time/op delta
Juju-4 65.5s ± 1% 63.4s ± 1% -3.21% (p=0.000 n=20+20)
Kube-4 47.6s ± 2% 46.7s ± 1% -1.72% (p=0.000 n=18+20)
Gogs-4 14.7s ± 2% 14.3s ± 2% -3.03% (p=0.000 n=20+20)