From 7067e8206c216fbb95753915e0b873826a03f655 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Thu, 12 Jan 2023 01:26:19 -0800 Subject: [PATCH] app/vmselect/promql: reduce memory allocations at getCommonLabelFilters() function Intern tag keys and values there --- app/vmselect/promql/eval.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/vmselect/promql/eval.go b/app/vmselect/promql/eval.go index 4f7b4af0cb..689365d1d5 100644 --- a/app/vmselect/promql/eval.go +++ b/app/vmselect/promql/eval.go @@ -508,7 +508,9 @@ func getCommonLabelFilters(tss []*timeseries) []metricsql.LabelFilter { m := make(map[string][]string) for _, ts := range tss { for _, tag := range ts.MetricName.Tags { - m[string(tag.Key)] = append(m[string(tag.Key)], string(tag.Value)) + k := bytesutil.InternBytes(tag.Key) + v := bytesutil.InternBytes(tag.Value) + m[k] = append(m[k], v) } } lfs := make([]metricsql.LabelFilter, 0, len(m))