[PERF] Regex: stop calling Simplify

It slows down compilation and doesn't make any of our benchmarks go faster.
Assumed to be something that helped at an earlier point, but doesn't help now.

Add a benchmark with a more complicated regex to demonstrate the slowdown.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
Bryan Boreham 2025-09-18 10:58:25 +01:00 committed by Julien Pivotto
parent 7d42ddfaad
commit 042f945af1
2 changed files with 7 additions and 2 deletions

View File

@ -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) {

View File

@ -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