Commit cf5dd6ad authored by Rob Pike's avatar Rob Pike

testing: quantize AllocsPerRun

As the code now says:

We are forced to return a float64 because the API is silly, but do
the division as integers so we can ask if AllocsPerRun()==1
instead of AllocsPerRun()<2.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/9837049
parent e17281b3
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
) )
// AllocsPerRun returns the average number of allocations during calls to f. // AllocsPerRun returns the average number of allocations during calls to f.
// Although the return value has type float64, it will always be an integral value.
// //
// To compute the number of allocations, the function will first be run once as // To compute the number of allocations, the function will first be run once as
// a warm-up. The average number of allocations over the specified number of // a warm-up. The average number of allocations over the specified number of
...@@ -36,6 +37,9 @@ func AllocsPerRun(runs int, f func()) (avg float64) { ...@@ -36,6 +37,9 @@ func AllocsPerRun(runs int, f func()) (avg float64) {
runtime.ReadMemStats(&memstats) runtime.ReadMemStats(&memstats)
mallocs += memstats.Mallocs mallocs += memstats.Mallocs
// Average the mallocs over the runs (not counting the warm-up) // Average the mallocs over the runs (not counting the warm-up).
return float64(mallocs) / float64(runs) // We are forced to return a float64 because the API is silly, but do
// the division as integers so we can ask if AllocsPerRun()==1
// instead of AllocsPerRun()<2.
return float64(mallocs / uint64(runs))
} }
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