From 3da2c99ffdf2a6ff8c11e1151e4139f7e83a3f2e Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 3 Jan 2023 15:08:32 +0000 Subject: [PATCH] tsdb/index: don't call ExpandPostings in a benchmark This allocates memory for all the returned values, which skews the result. We aren't trying to benchmark `ExpandPostings`, so just step through all the values without storing them to consume them. Signed-off-by: Bryan Boreham --- tsdb/index/postings_test.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tsdb/index/postings_test.go b/tsdb/index/postings_test.go index 38736fc6b..1b1ecd3c3 100644 --- a/tsdb/index/postings_test.go +++ b/tsdb/index/postings_test.go @@ -280,6 +280,13 @@ func TestMultiIntersect(t *testing.T) { } } +func consumePostings(p Postings) error { + for p.Next() { + p.At() + } + return p.Err() +} + func BenchmarkIntersect(t *testing.B) { t.Run("LongPostings1", func(bench *testing.B) { var a, b, c, d []storage.SeriesRef @@ -307,7 +314,7 @@ func BenchmarkIntersect(t *testing.B) { i2 := newListPostings(b...) i3 := newListPostings(c...) i4 := newListPostings(d...) - if _, err := ExpandPostings(Intersect(i1, i2, i3, i4)); err != nil { + if err := consumePostings(Intersect(i1, i2, i3, i4)); err != nil { bench.Fatal(err) } } @@ -336,7 +343,7 @@ func BenchmarkIntersect(t *testing.B) { i2 := newListPostings(b...) i3 := newListPostings(c...) i4 := newListPostings(d...) - if _, err := ExpandPostings(Intersect(i1, i2, i3, i4)); err != nil { + if err := consumePostings(Intersect(i1, i2, i3, i4)); err != nil { bench.Fatal(err) } } @@ -366,7 +373,7 @@ func BenchmarkIntersect(t *testing.B) { lps[j].list = refs[j] its[j] = lps[j] } - if _, err := ExpandPostings(Intersect(its...)); err != nil { + if err := consumePostings(Intersect(its...)); err != nil { bench.Fatal(err) } }