ref: 14bce18a6c5aca8cb3e70a74d5045ca8b2358fee
parent: 837e084bbe53e9e2e6cd471d2a3daf273a874d92
author: Cameron Moore <moorereason@gmail.com>
date: Fri Oct 16 09:27:09 EDT 2020
highlight: Avoid making unnecessary allocation Avoid creating a local copy of the highlight configuration when no options are passed. Benchmarks of building the docs site: name old time/op new time/op delta DocsSite-2 1.94s ± 4% 1.93s ± 4% ~ (p=0.841 n=5+5) name old alloc/op new alloc/op delta DocsSite-2 666MB ± 1% 656MB ± 0% -1.48% (p=0.008 n=5+5) name old allocs/op new allocs/op delta DocsSite-2 8.85M ± 0% 8.76M ± 0% -1.04% (p=0.029 n=4+4)
--- a/markup/highlight/highlight.go
+++ b/markup/highlight/highlight.go
@@ -37,12 +37,15 @@
}
func (h Highlighter) Highlight(code, lang, optsStr string) (string, error) {
+ if optsStr == "" {
+ return highlight(code, lang, h.cfg)
+ }
+
cfg := h.cfg
- if optsStr != "" {
- if err := applyOptionsFromString(optsStr, &cfg); err != nil {
- return "", err
- }
+ if err := applyOptionsFromString(optsStr, &cfg); err != nil {
+ return "", err
}
+
return highlight(code, lang, cfg)
}