Use buffer pool in StripHTML - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit 08219161dd48d952085dd2e421dc7b005319684c
(DIR) parent 5e34ae6199da8a579a0e5589483172e140217cc7
(HTM) Author: bep <bjorn.erik.pedersen@gmail.com>
Date: Fri, 6 Feb 2015 15:35:45 +0100
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%
Diffstat:
M helpers/content.go | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/helpers/content.go b/helpers/content.go
@@ -23,9 +23,9 @@ import (
"os/exec"
"github.com/russross/blackfriday"
- "github.com/spf13/viper"
-
+ bp "github.com/spf13/hugo/bufferpool"
jww "github.com/spf13/jwalterweatherman"
+ "github.com/spf13/viper"
"strings"
"sync"
@@ -81,7 +81,9 @@ func StripHTML(s string) string {
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 {