Commit a5bb1af4 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

testing: make benchmarking faster

Allow the number of benchmark iterations to grow faster for fast benchmarks, and don't round up twice.

Using the default benchtime, this CL reduces wall clock time to run benchmarks:

net/http        49s   -> 37s   (-24%)
runtime         8m31s -> 5m55s (-30%)
bytes           2m37s -> 1m29s (-43%)
encoding/json   29s   -> 21s   (-27%)
strings         1m16s -> 53s   (-30%)

LGTM=crawshaw
R=golang-codereviews, crawshaw
CC=golang-codereviews
https://golang.org/cl/101970047
parent 0476693e
......@@ -205,10 +205,12 @@ func (b *B) launch() {
} else {
n = int(d.Nanoseconds() / b.nsPerOp())
}
// Run more iterations than we think we'll need for a second (1.5x).
// Don't grow too fast in case we had timing errors previously.
// If the last run was small, don't grow too fast.
if last < 1000 {
n = min(n, 100*last)
}
// Be sure to run at least one more than last time.
n = max(min(n+n/2, 100*last), last+1)
n = max(n, last+1)
// Round up to something easy to read.
n = roundUp(n)
b.runN(n)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment