ref: 455df1075205d5fcda184410575e535e605c8f20
parent: 83759953784367ef3ec16d494890167a2380353b
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Feb 25 16:31:22 EST 2016
Optimize replaceShortcodeTokens We can of course skip reading the entire byte slice again and again. This was a slip in the original implementation; functionally the same, but is slightly faster, esp. for larger data sets with many shortcodes: ``` benchmark old ns/op new ns/op delta BenchmarkReplaceShortcodeTokens-4 15505 14753 -4.85% benchmark old allocs new allocs delta BenchmarkReplaceShortcodeTokens-4 1 1 +0.00% benchmark old bytes new bytes delta BenchmarkReplaceShortcodeTokens-4 3072 3072 +0.00% ```
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -506,7 +506,7 @@
// This and other cool slice tricks: https://github.com/golang/go/wiki/SliceTricks
source = append(source[:j], append(newVal, source[end:]...)...)
-
+ start = j
k = bytes.Index(source[start:], pre)
}