go/printer: report allocs and set bytes
We now get more than just time/op.
name time/op
Print-16 6.29ms ± 3%
name speed
Print-16 8.25MB/s ± 3%
name alloc/op
Print-16 483kB ± 0%
name allocs/op
Print-16 17.8k ± 0%
Change-Id: I6b5e9a30a826ff8603724bd5983e6b7f5ec12708
Reviewed-on: https://go-review.googlesource.com/c/go/+/412554
Reviewed-by: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Ian Lance Taylor <iant@google.com>
diff --git a/src/go/printer/performance_test.go b/src/go/printer/performance_test.go
index e655fa1..ea6a98c 100644
--- a/src/go/printer/performance_test.go
+++ b/src/go/printer/performance_test.go
@@ -17,7 +17,10 @@
"testing"
)
-var testfile *ast.File
+var (
+ testfile *ast.File
+ testsize int64
+)
func testprint(out io.Writer, file *ast.File) {
if err := (&Config{TabIndent | UseSpaces | normalizeNumbers, 8, 0}).Fprint(out, fset, file); err != nil {
@@ -46,12 +49,15 @@
}
testfile = file
+ testsize = int64(len(src))
}
func BenchmarkPrint(b *testing.B) {
if testfile == nil {
initialize()
}
+ b.ReportAllocs()
+ b.SetBytes(testsize)
for i := 0; i < b.N; i++ {
testprint(io.Discard, testfile)
}