aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-08-13 17:02:48 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-08-13 17:02:48 +0200
commitb65356b565286bb1d161cf88d1170168fc9b024c (patch)
tree675eb7154aafc563349a71ae5fef3d15de11827b
parent74d61399c29bb1e38da47fa7fd02a80f06639f7f (diff)
prog: measure memory allocation in benchmarks
Enable ReportAllocs. Also factor out common code into a helper function (duplicated in 3 places now).
-rw-r--r--prog/export_test.go11
-rw-r--r--prog/hints_test.go9
-rw-r--r--prog/mutation_test.go18
3 files changed, 17 insertions, 21 deletions
diff --git a/prog/export_test.go b/prog/export_test.go
index 1aaea30dc..9ea3f612e 100644
--- a/prog/export_test.go
+++ b/prog/export_test.go
@@ -89,3 +89,14 @@ func testEachTargetRandom(t *testing.T, fn func(t *testing.T, target *Target, rs
})
}
}
+
+func initBench(b *testing.B) (*Target, func()) {
+ olddebug := debug
+ debug = false
+ target, err := GetTarget("linux", "amd64")
+ if err != nil {
+ b.Fatal(err)
+ }
+ b.ReportAllocs()
+ return target, func() { debug = olddebug }
+}
diff --git a/prog/hints_test.go b/prog/hints_test.go
index 67a250431..78b86e57c 100644
--- a/prog/hints_test.go
+++ b/prog/hints_test.go
@@ -480,13 +480,8 @@ func TestHintsData(t *testing.T) {
}
func BenchmarkHints(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
rs := rand.NewSource(0)
r := newRand(target, rs)
p := target.Generate(rs, 30, nil)
diff --git a/prog/mutation_test.go b/prog/mutation_test.go
index 6b50b975e..b041f02d2 100644
--- a/prog/mutation_test.go
+++ b/prog/mutation_test.go
@@ -220,13 +220,8 @@ func runMutationTests(t *testing.T, tests [][2]string) {
}
func BenchmarkMutate(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
ct := linuxAmd64ChoiceTable(target)
const progLen = 30
p := target.Generate(rand.NewSource(0), progLen, nil)
@@ -240,13 +235,8 @@ func BenchmarkMutate(b *testing.B) {
}
func BenchmarkGenerate(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
ct := linuxAmd64ChoiceTable(target)
const progLen = 30
b.ResetTimer()