ref: 08219161dd48d952085dd2e421dc7b005319684c
parent: 5e34ae6199da8a579a0e5589483172e140217cc7
author: bep <[email protected]>
date: Fri Feb 6 10:35:45 EST 2015
Use buffer pool in StripHTML Allocates less memory: benchmark old ns/op new ns/op delta BenchmarkStripHTML 6572 6695 +1.87% benchmark old allocs new allocs delta BenchmarkStripHTML 5 4 -20.00% benchmark old bytes new bytes delta BenchmarkStripHTML 848 737 -13.09% Compared to 0.12: benchmark old ns/op new ns/op delta BenchmarkStripHTML 10210 6695 -34.43% benchmark old allocs new allocs delta BenchmarkStripHTML 6 4 -33.33% benchmark old bytes new bytes delta BenchmarkStripHTML 1456 737 -49.38%
--- a/helpers/content.go
+++ b/helpers/content.go
@@ -23,10 +23,10 @@
"os/exec"
"github.com/russross/blackfriday"
+ bp "github.com/spf13/hugo/bufferpool"
+ jww "github.com/spf13/jwalterweatherman"
"github.com/spf13/viper"
- jww "github.com/spf13/jwalterweatherman"
-
"strings"
"sync"
)
@@ -81,7 +81,9 @@
s = stripHTMLReplacer.Replace(s)
// Walk through the string removing all tags
- b := new(bytes.Buffer)
+ b := bp.GetBuffer()
+ defer bp.PutBuffer(b)
+
inTag := false
for _, r := range s {
switch r {