diff --git a/model/labels/matcher_test.go b/model/labels/matcher_test.go index ff39d40d0f..214bb37eff 100644 --- a/model/labels/matcher_test.go +++ b/model/labels/matcher_test.go @@ -225,6 +225,13 @@ func BenchmarkNewMatcher(b *testing.B) { NewMatcher(MatchRegexp, "foo", "bar") } }) + b.Run("complex regex", func(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + for i := 0; i <= b.N; i++ { + NewMatcher(MatchRegexp, "foo", "((.*)(bar|b|buzz)(.+)|foo){10}") + } + }) } func BenchmarkMatcher_String(b *testing.B) { diff --git a/model/labels/regexp.go b/model/labels/regexp.go index 6838e094f1..dfab677031 100644 --- a/model/labels/regexp.go +++ b/model/labels/regexp.go @@ -67,8 +67,6 @@ func NewFastRegexMatcher(v string) (*FastRegexMatcher, error) { if err != nil { return nil, err } - // Simplify the syntax tree to run faster. - parsed = parsed.Simplify() m.re, err = regexp.Compile("^(?s:" + parsed.String() + ")$") if err != nil { return nil, err