From ecd0a9c6ba31df8b8e13c3672d278371b38c95aa Mon Sep 17 00:00:00 2001 From: Brian Brazil Date: Wed, 7 Feb 2018 15:40:36 +0000 Subject: [PATCH] web: Add benchmark for respond() --- web/api/v1/api_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/web/api/v1/api_test.go b/web/api/v1/api_test.go index e4128b1b4..df4114e25 100644 --- a/web/api/v1/api_test.go +++ b/web/api/v1/api_test.go @@ -853,3 +853,26 @@ func TestOptionsMethod(t *testing.T) { } } } + +// This is a global to avoid the benchmark being optimized away. +var testResponseWriter = httptest.ResponseRecorder{} + +func BenchmarkRespond(b *testing.B) { + b.ReportAllocs() + points := []promql.Point{} + for i := 0; i < 10000; i++ { + points = append(points, promql.Point{V: float64(i * 1000000), T: int64(i)}) + } + response := &queryData{ + ResultType: promql.ValueTypeMatrix, + Result: promql.Matrix{ + promql.Series{ + Points: points, + Metric: nil, + }, + }, + } + for n := 0; n < b.N; n++ { + respond(&testResponseWriter, response) + } +} -- GitLab