From 31ad583ab24263f9dbcb5cbcce849eed64e74040 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sat, 25 Jun 2016 15:11:25 -0700 Subject: [PATCH] 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 --- src/testing/benchmark.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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. -- 2.48.1