shithub: hugo

Download patch

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 {