mirror of
https://github.com/golang/go
synced 2024-09-29 13:34:30 -06:00
text/template: replace bytes.Buffer with strings.Builder
After Go.1.10+ strings.Builder is known as more efficient in concatenating and building strings than bytes.Buffer. In this CL, there is a minor logic fix for getting advantage of strings.builder. name old time/op new time/op delta DefinedTemplate-8 543ns ± 3% 512ns ± 2% -5.73% (p=0.000 n=8+8) name old alloc/op new alloc/op delta DefinedTemplate-8 192B ± 0% 160B ± 0% -16.67% (p=0.000 n=8+8) name old allocs/op new allocs/op delta DefinedTemplate-8 5.00 ± 0% 5.00 ± 0% ~ (all equal) Change-Id: Icda0054d146e6c5e32ed8a4d13221bb6850d31b4 Reviewed-on: https://go-review.googlesource.com/c/go/+/175261 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
fc4663d56f
commit
997086b7e6
@ -5,7 +5,6 @@
|
|||||||
package template
|
package template
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"internal/fmtsort"
|
"internal/fmtsort"
|
||||||
"io"
|
"io"
|
||||||
@ -230,21 +229,19 @@ func (t *Template) DefinedTemplates() string {
|
|||||||
if t.common == nil {
|
if t.common == nil {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
var b bytes.Buffer
|
var b strings.Builder
|
||||||
for name, tmpl := range t.tmpl {
|
for name, tmpl := range t.tmpl {
|
||||||
if tmpl.Tree == nil || tmpl.Root == nil {
|
if tmpl.Tree == nil || tmpl.Root == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if b.Len() > 0 {
|
if b.Len() == 0 {
|
||||||
|
b.WriteString("; defined templates are: ")
|
||||||
|
} else {
|
||||||
b.WriteString(", ")
|
b.WriteString(", ")
|
||||||
}
|
}
|
||||||
fmt.Fprintf(&b, "%q", name)
|
fmt.Fprintf(&b, "%q", name)
|
||||||
}
|
}
|
||||||
var s string
|
return b.String()
|
||||||
if b.Len() > 0 {
|
|
||||||
s = "; defined templates are: " + b.String()
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Walk functions step through the major pieces of the template structure,
|
// Walk functions step through the major pieces of the template structure,
|
||||||
|
Loading…
Reference in New Issue
Block a user