mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-25 01:52:23 +00:00
9af47f07d3
50% speedup. Fix #91 to run the benchmark: go test -test.run=NONE -bench=".*" -test.benchmem=true ./transform/ > new.txt to compare the results: /usr/local/go/misc/benchcmp baseline.txt new.txt Speedup and memory improvements benchmark old ns/op new ns/op delta BenchmarkChain 101219 50453 -50.15% BenchmarkTransform 51625 45531 -11.80% benchmark old allocs new allocs delta BenchmarkChain 222 103 -53.60% BenchmarkTransform 135 106 -21.48% benchmark old bytes new bytes delta BenchmarkChain 23919 10998 -54.02% BenchmarkTransform 11858 10665 -10.06%
25 lines
404 B
Go
25 lines
404 B
Go
package transform
|
|
|
|
import (
|
|
htmltran "code.google.com/p/go-html-transform/html/transform"
|
|
"io"
|
|
)
|
|
|
|
type chain []*htmltran.Transform
|
|
|
|
func NewChain(trs ...*htmltran.Transform) chain {
|
|
return trs
|
|
}
|
|
|
|
func (c *chain) Apply(w io.Writer, r io.Reader) (err error) {
|
|
|
|
var tr *htmltran.Transformer
|
|
|
|
if tr, err = htmltran.NewFromReader(r); err != nil {
|
|
return
|
|
}
|
|
|
|
tr.ApplyAll(*c...)
|
|
|
|
return tr.Render(w)
|
|
}
|