Avoid reading from Viper for path and URL funcs

The gain, given the "real sites benchmark" below, is obvious:

```
benchmark           old ns/op       new ns/op       delta
BenchmarkHugo-4     14497594101     13084156335     -9.75%

benchmark           old allocs     new allocs     delta
BenchmarkHugo-4     57404335       48282002       -15.89%

benchmark           old bytes       new bytes      delta
BenchmarkHugo-4     9933505624      9721984424     -2.13%
```

Fixes #2495
This commit is contained in:
Bjørn Erik Pedersen
2016-10-24 13:45:30 +02:00
committed by GitHub
parent dffd7da07c
commit a10b2cd372
26 changed files with 348 additions and 90 deletions

View File

@@ -18,6 +18,7 @@ import (
"path/filepath"
"testing"
"github.com/spf13/hugo/helpers"
"github.com/spf13/hugo/source"
"github.com/spf13/viper"
)
@@ -59,17 +60,18 @@ func TestPermalink(t *testing.T) {
}
viper.Set("DefaultExtension", "html")
for i, test := range tests {
viper.Set("uglyurls", test.uglyURLs)
viper.Set("canonifyurls", test.canonifyURLs)
info := newSiteInfo(siteBuilderCfg{baseURL: string(test.base), language: helpers.NewDefaultLanguage()})
p := &Page{
Node: Node{
URLPath: URLPath{
Section: "z",
URL: test.url,
},
Site: newSiteInfoDefaultLanguage(string(test.base)),
Site: &info,
},
Source: Source{File: *source.NewFile(filepath.FromSlash(test.file))},
}