From 94489fa77854cf1ca8cf2e02cf61b3a4e75ccae2 Mon Sep 17 00:00:00 2001 From: Marty Schoch Date: Wed, 24 Aug 2016 15:14:40 -0400 Subject: [PATCH] change collector benchmark to not reuse collector instances they are never reused in practice and the original design did not consider reuse future alternate implementations are not reusable --- search/collectors/bench_test.go | 5 ++++- search/collectors/collector_top_score_test.go | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/search/collectors/bench_test.go b/search/collectors/bench_test.go index cddf5e7f..43ceb764 100644 --- a/search/collectors/bench_test.go +++ b/search/collectors/bench_test.go @@ -10,7 +10,9 @@ import ( "golang.org/x/net/context" ) -func benchHelper(numOfMatches int, collector search.Collector, b *testing.B) { +type createCollector func() search.Collector + +func benchHelper(numOfMatches int, cc createCollector, b *testing.B) { matches := make([]*search.DocumentMatch, 0, numOfMatches) for i := 0; i < numOfMatches; i++ { matches = append(matches, &search.DocumentMatch{ @@ -25,6 +27,7 @@ func benchHelper(numOfMatches int, collector search.Collector, b *testing.B) { searcher := &stubSearcher{ matches: matches, } + collector := cc() err := collector.Collect(context.Background(), searcher, &stubReader{}) if err != nil { b.Fatal(err) diff --git a/search/collectors/collector_top_score_test.go b/search/collectors/collector_top_score_test.go index 66c8978c..f5b0c6b8 100644 --- a/search/collectors/collector_top_score_test.go +++ b/search/collectors/collector_top_score_test.go @@ -402,17 +402,17 @@ func TestPaginationSameScores(t *testing.T) { } func BenchmarkTop10of100000Scores(b *testing.B) { - benchHelper(10000, NewTopScorerCollector(10), b) + benchHelper(10000, func() search.Collector { return NewTopScorerCollector(10) }, b) } func BenchmarkTop100of100000Scores(b *testing.B) { - benchHelper(10000, NewTopScorerCollector(100), b) + benchHelper(10000, func() search.Collector { return NewTopScorerCollector(100) }, b) } func BenchmarkTop10of1000000Scores(b *testing.B) { - benchHelper(100000, NewTopScorerCollector(10), b) + benchHelper(100000, func() search.Collector { return NewTopScorerCollector(10) }, b) } func BenchmarkTop100of1000000Scores(b *testing.B) { - benchHelper(100000, NewTopScorerCollector(100), b) + benchHelper(100000, func() search.Collector { return NewTopScorerCollector(100) }, b) }