mirror of
https://github.com/caddyserver/caddy.git
synced 2025-12-08 06:09:53 +00:00
refactor: use strings.Builder to improve performance
Signed-off-by: zjumathcode <pai314159@2980.com>
This commit is contained in:
parent
67a9e0657e
commit
269d616a79
3 changed files with 18 additions and 15 deletions
|
|
@ -244,15 +244,15 @@ func DisabledTest(t *testing.T) {
|
||||||
sendFcgi(0, fcgiParams, []byte("c4ca4238a0b923820dcc509a6f75849b=1&7b8b965ad4bca0e41ab51de7b31363a1=n"), nil, nil)
|
sendFcgi(0, fcgiParams, []byte("c4ca4238a0b923820dcc509a6f75849b=1&7b8b965ad4bca0e41ab51de7b31363a1=n"), nil, nil)
|
||||||
|
|
||||||
log.Println("test:", "post data (more than 60KB)")
|
log.Println("test:", "post data (more than 60KB)")
|
||||||
data := ""
|
var data strings.Builder
|
||||||
for i := 0x00; i < 0xff; i++ {
|
for i := 0x00; i < 0xff; i++ {
|
||||||
v0 := strings.Repeat(fmt.Sprint(i), 256)
|
v0 := strings.Repeat(fmt.Sprint(i), 256)
|
||||||
h := md5.New()
|
h := md5.New()
|
||||||
_, _ = io.WriteString(h, v0)
|
_, _ = io.WriteString(h, v0)
|
||||||
k0 := fmt.Sprintf("%x", h.Sum(nil))
|
k0 := fmt.Sprintf("%x", h.Sum(nil))
|
||||||
data += k0 + "=" + url.QueryEscape(v0) + "&"
|
data.WriteString(k0 + "=" + url.QueryEscape(v0) + "&")
|
||||||
}
|
}
|
||||||
sendFcgi(0, fcgiParams, []byte(data), nil, nil)
|
sendFcgi(0, fcgiParams, []byte(data.String()), nil, nil)
|
||||||
|
|
||||||
log.Println("test:", "post form (use url.Values)")
|
log.Println("test:", "post form (use url.Values)")
|
||||||
p0 := make(map[string]string, 1)
|
p0 := make(map[string]string, 1)
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/caddyserver/caddy/v2"
|
"github.com/caddyserver/caddy/v2"
|
||||||
)
|
)
|
||||||
|
|
@ -110,14 +111,15 @@ func (r Route) Empty() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r Route) String() string {
|
func (r Route) String() string {
|
||||||
handlersRaw := "["
|
var handlersRaw strings.Builder
|
||||||
|
handlersRaw.WriteString("[")
|
||||||
for _, hr := range r.HandlersRaw {
|
for _, hr := range r.HandlersRaw {
|
||||||
handlersRaw += " " + string(hr)
|
handlersRaw.WriteString(" " + string(hr))
|
||||||
}
|
}
|
||||||
handlersRaw += "]"
|
handlersRaw.WriteString("]")
|
||||||
|
|
||||||
return fmt.Sprintf(`{Group:"%s" MatcherSetsRaw:%s HandlersRaw:%s Terminal:%t}`,
|
return fmt.Sprintf(`{Group:"%s" MatcherSetsRaw:%s HandlersRaw:%s Terminal:%t}`,
|
||||||
r.Group, r.MatcherSetsRaw, handlersRaw, r.Terminal)
|
r.Group, r.MatcherSetsRaw, handlersRaw.String(), r.Terminal)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Provision sets up both the matchers and handlers in the route.
|
// Provision sets up both the matchers and handlers in the route.
|
||||||
|
|
@ -440,13 +442,14 @@ func (ms *MatcherSets) FromInterface(matcherSets any) error {
|
||||||
|
|
||||||
// TODO: Is this used?
|
// TODO: Is this used?
|
||||||
func (ms MatcherSets) String() string {
|
func (ms MatcherSets) String() string {
|
||||||
result := "["
|
var result strings.Builder
|
||||||
|
result.WriteString("[")
|
||||||
for _, matcherSet := range ms {
|
for _, matcherSet := range ms {
|
||||||
for _, matcher := range matcherSet {
|
for _, matcher := range matcherSet {
|
||||||
result += fmt.Sprintf(" %#v", matcher)
|
result.WriteString(fmt.Sprintf(" %#v", matcher))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result + " ]"
|
return result.String() + " ]"
|
||||||
}
|
}
|
||||||
|
|
||||||
var routeGroupCtxKey = caddy.CtxKey("route_group")
|
var routeGroupCtxKey = caddy.CtxKey("route_group")
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@ func (m IPMaskFilter) Filter(in zapcore.Field) zapcore.Field {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m IPMaskFilter) mask(s string) string {
|
func (m IPMaskFilter) mask(s string) string {
|
||||||
output := ""
|
var output strings.Builder
|
||||||
for value := range strings.SplitSeq(s, ",") {
|
for value := range strings.SplitSeq(s, ",") {
|
||||||
value = strings.TrimSpace(value)
|
value = strings.TrimSpace(value)
|
||||||
host, port, err := net.SplitHostPort(value)
|
host, port, err := net.SplitHostPort(value)
|
||||||
|
|
@ -264,7 +264,7 @@ func (m IPMaskFilter) mask(s string) string {
|
||||||
}
|
}
|
||||||
ipAddr := net.ParseIP(host)
|
ipAddr := net.ParseIP(host)
|
||||||
if ipAddr == nil {
|
if ipAddr == nil {
|
||||||
output += value + ", "
|
output.WriteString(value + ", ")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
mask := m.v4Mask
|
mask := m.v4Mask
|
||||||
|
|
@ -273,13 +273,13 @@ func (m IPMaskFilter) mask(s string) string {
|
||||||
}
|
}
|
||||||
masked := ipAddr.Mask(mask)
|
masked := ipAddr.Mask(mask)
|
||||||
if port == "" {
|
if port == "" {
|
||||||
output += masked.String() + ", "
|
output.WriteString(masked.String() + ", ")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
output += net.JoinHostPort(masked.String(), port) + ", "
|
output.WriteString(net.JoinHostPort(masked.String(), port) + ", ")
|
||||||
}
|
}
|
||||||
return strings.TrimSuffix(output, ", ")
|
return strings.TrimSuffix(output.String(), ", ")
|
||||||
}
|
}
|
||||||
|
|
||||||
type filterAction string
|
type filterAction string
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue