summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/matchers.go
diff options
context:
space:
mode:
authorCalvin Xiao <calvin325@gmail.com>2021-05-03 00:35:28 +0800
committerGitHub <noreply@github.com>2021-05-02 10:35:28 -0600
commit53ececda21f77d000ee893bc981d6ec5c33872f8 (patch)
tree527fad5c6f5a610f0031a2373695f44427b2168a /modules/caddyhttp/matchers.go
parent637fd8f67b7ff6191673ff13e94825a4ec896891 (diff)
caddyhttp: performance improvement in HeaderRE Matcher (#4143)
Below is the report using `benchstat` and cmd: `go test -run=BenchmarkHeaderREMatcher -bench=BenchmarkHeaderREMatcher -benchmem -count=10` ``` name old time/op new time/op delta HeaderREMatcher-16 869ns ± 1% 658ns ± 0% -24.29% (p=0.000 n=10+10) name old alloc/op new alloc/op delta HeaderREMatcher-16 144B ± 0% 112B ± 0% -22.22% (p=0.000 n=10+10) name old allocs/op new allocs/op delta HeaderREMatcher-16 7.00 ± 0% 5.00 ± 0% -28.57% (p=0.000 n=10+10) ```
Diffstat (limited to 'modules/caddyhttp/matchers.go')
-rw-r--r--modules/caddyhttp/matchers.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/modules/caddyhttp/matchers.go b/modules/caddyhttp/matchers.go
index a4f4502..eaf43e9 100644
--- a/modules/caddyhttp/matchers.go
+++ b/modules/caddyhttp/matchers.go
@@ -24,6 +24,7 @@ import (
"path/filepath"
"regexp"
"sort"
+ "strconv"
"strings"
"github.com/caddyserver/caddy/v2"
@@ -935,14 +936,14 @@ func (mre *MatchRegexp) Match(input string, repl *caddy.Replacer) bool {
// save all capture groups, first by index
for i, match := range matches {
- key := fmt.Sprintf("%s.%d", mre.phPrefix, i)
+ key := mre.phPrefix + "." + strconv.Itoa(i)
repl.Set(key, match)
}
// then by name
for i, name := range mre.compiled.SubexpNames() {
if i != 0 && name != "" {
- key := fmt.Sprintf("%s.%s", mre.phPrefix, name)
+ key := mre.phPrefix + "." + name
repl.Set(key, matches[i])
}
}