From f8cbaf0794eb1dc02adfaeb8960bafecf3ecf508 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 25 Jan 2016 13:53:38 -0800 Subject: [PATCH] Flush cache between runs of the benchmark. --- render/benchmark_test.go | 2 ++ render/render.go | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/render/benchmark_test.go b/render/benchmark_test.go index eb3516e44..3c53148d5 100644 --- a/render/benchmark_test.go +++ b/render/benchmark_test.go @@ -61,6 +61,7 @@ func benchmarkRender(b *testing.B, r render.Renderer) { b.ResetTimer() for i := 0; i < b.N; i++ { + render.ResetCache() benchmarkRenderResult = r.Render(report) if len(benchmarkRenderResult) == 0 { b.Errorf("Rendered topology contained no nodes") @@ -78,6 +79,7 @@ func benchmarkStats(b *testing.B, r render.Renderer) { for i := 0; i < b.N; i++ { // No way to tell if this was successful :( + render.ResetCache() benchmarkStatsResult = r.Stats(report) } } diff --git a/render/render.go b/render/render.go index a8d9a6f6e..6e6ad4731 100644 --- a/render/render.go +++ b/render/render.go @@ -30,6 +30,10 @@ func memoisedRender(r Renderer, rpt report.Report) RenderableNodes { return output } +func ResetCache() { + renderCache.Purge() +} + // Renderer is something that can render a report to a set of RenderableNodes. type Renderer interface { Render(report.Report) RenderableNodes