From 80eda969eaf229e20c863d8fee0e2027d355c9e1 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 4 Apr 2022 19:44:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/configutils/variable.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/configutils/variable.go b/pkg/configutils/variable.go index b6c0687..0f6be65 100644 --- a/pkg/configutils/variable.go +++ b/pkg/configutils/variable.go @@ -14,6 +14,12 @@ var variableMapping = map[string][]interface{}{} // source => [holder1, ...] var variableLocker = sync.RWMutex{} var regexpNamedVariable = regexp.MustCompile(`\${[\w.-]+}`) +var stringBuilderPool = sync.Pool{ + New: func() interface{} { + return &strings.Builder{} + }, +} + // ParseVariables 分析变量 func ParseVariables(source string, replacer func(varName string) (value string)) string { if len(source) == 0 { @@ -46,7 +52,9 @@ func ParseVariables(source string, replacer func(varName string) (value string)) } // 多个占位时,使用Builder - var builder = strings.Builder{} + var builder = stringBuilderPool.Get().(*strings.Builder) + builder.Reset() + defer stringBuilderPool.Put(builder) for _, h := range holders { holder, ok := h.(VariableHolder) if ok {