driver: report benchmem in benchmark name
The benchmem value is important to understanding the results of the
garbage benchmark, so it's important to include it in the benchmark
report.
Change-Id: I6bf2b0c8450b9c4e34d39a7f12822870f5fad131
Reviewed-on: https://go-review.googlesource.com/33583
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/driver/driver.go b/driver/driver.go
index bfe8d9b..86f6382 100644
--- a/driver/driver.go
+++ b/driver/driver.go
@@ -37,10 +37,11 @@
tmpDir = flag.String("tmpdir", os.TempDir(), "dir for temporary files")
genSvg = flag.Bool("svg", false, "generate svg profiles")
- BenchMem int
BenchTime time.Duration
WorkDir string
+ usedBenchMem bool
+
// startTrace starts runtime tracing if supported and
// requested and returns a function to stop tracing.
startTrace = func() func() {
@@ -51,7 +52,6 @@
func Main(name string, f func() Result) {
flag.Parse()
// Copy to public variables, so that benchmarks can access the values.
- BenchMem = *benchMem
BenchTime = *benchTime
WorkDir = *tmpDir
@@ -75,6 +75,11 @@
}
}
+func BenchMem() int {
+ usedBenchMem = true
+ return *benchMem
+}
+
func setupWatchdog() {
t := *benchTime
// Be somewhat conservative, and build benchmark does not care about benchTime.
@@ -128,6 +133,9 @@
fmt.Printf("# %s=%s\n", name, path)
}
+ if usedBenchMem {
+ name = fmt.Sprintf("%s/benchmem-MB=%d", name, *benchMem)
+ }
fmt.Printf("Benchmark%s-%d %8d\t%10d ns/op", name, runtime.GOMAXPROCS(-1), res.N, res.RunTime)
var metrics []string
for metric := range res.Metrics {
diff --git a/garbage/garbage.go b/garbage/garbage.go
index 8378a55..02332ae 100644
--- a/garbage/garbage.go
+++ b/garbage/garbage.go
@@ -38,8 +38,8 @@
func benchmark() driver.Result {
if parsed == nil {
mem := packageMemConsumption()
- avail := (driver.BenchMem << 20) * 4 / 5 // 4/5 to account for non-heap memory
- npkg := avail / mem / 2 // 2 to account for GOGC=100
+ avail := (driver.BenchMem() << 20) * 4 / 5 // 4/5 to account for non-heap memory
+ npkg := avail / mem / 2 // 2 to account for GOGC=100
parsed = make([]ParsedPackage, npkg)
for n := 0; n < 2; n++ { // warmup GC
for i := range parsed {