From: Josh Bleecher Snyder Date: Sat, 25 Jun 2016 22:11:25 +0000 (-0700) Subject: testing: respect benchtime on very fast benchmarks X-Git-Tag: go1.8beta1~1896 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=31ad583ab24263f9dbcb5cbcce849eed64e74040;p=gostls13.git testing: respect benchtime on very fast benchmarks When ns/op dropped below 1, the old code ignored benchtime and reverted to 1s. Change-Id: I59752cef88d8d73bfd5b085f5400ae657f78504e Reviewed-on: https://go-review.googlesource.com/26664 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Marcel van Lohuizen --- diff --git a/src/testing/benchmark.go b/src/testing/benchmark.go index 5d58b85e78..4d45130516 100644 --- a/src/testing/benchmark.go +++ b/src/testing/benchmark.go @@ -263,10 +263,9 @@ func (b *B) launch() { for n := 1; !b.failed && b.duration < d && n < 1e9; { last := n // Predict required iterations. - if b.nsPerOp() == 0 { - n = 1e9 - } else { - n = int(d.Nanoseconds() / b.nsPerOp()) + n = int(d.Nanoseconds()) + if nsop := b.nsPerOp(); nsop != 0 { + n /= int(nsop) } // Run more iterations than we think we'll need (1.2x). // Don't grow too fast in case we had timing errors previously.