summaryrefslogtreecommitdiff
path: root/src/pkg/testing/allocs.go
diff options
context:
space:
mode:
authorTianon Gravi <admwiggin@gmail.com>2015-01-15 11:54:00 -0700
committerTianon Gravi <admwiggin@gmail.com>2015-01-15 11:54:00 -0700
commitf154da9e12608589e8d5f0508f908a0c3e88a1bb (patch)
treef8255d51e10c6f1e0ed69702200b966c9556a431 /src/pkg/testing/allocs.go
parent8d8329ed5dfb9622c82a9fbec6fd99a580f9c9f6 (diff)
downloadgolang-upstream/1.4.tar.gz
Imported Upstream version 1.4upstream/1.4
Diffstat (limited to 'src/pkg/testing/allocs.go')
-rw-r--r--src/pkg/testing/allocs.go45
1 files changed, 0 insertions, 45 deletions
diff --git a/src/pkg/testing/allocs.go b/src/pkg/testing/allocs.go
deleted file mode 100644
index 9ec47bd46..000000000
--- a/src/pkg/testing/allocs.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package testing
-
-import (
- "runtime"
-)
-
-// 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
-// a warm-up. The average number of allocations over the specified number of
-// runs will then be measured and returned.
-//
-// AllocsPerRun sets GOMAXPROCS to 1 during its measurement and will restore
-// it before returning.
-func AllocsPerRun(runs int, f func()) (avg float64) {
- defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
-
- // Warm up the function
- f()
-
- // Measure the starting statistics
- var memstats runtime.MemStats
- runtime.ReadMemStats(&memstats)
- mallocs := 0 - memstats.Mallocs
-
- // Run the function the specified number of times
- for i := 0; i < runs; i++ {
- f()
- }
-
- // Read the final statistics
- runtime.ReadMemStats(&memstats)
- mallocs += memstats.Mallocs
-
- // Average the mallocs over the runs (not counting the warm-up).
- // 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))
-}