From 08219161dd48d952085dd2e421dc7b005319684c Mon Sep 17 00:00:00 2001 From: bep Date: Fri, 6 Feb 2015 15:35:45 +0100 Subject: [PATCH] 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% --- helpers/content.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/helpers/content.go b/helpers/content.go index 78b4f8e91..914fdfda5 100644 --- 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 {