hugolib: Clear the page cache per render

This is a slight performance optimization with no functional effect.

See #5239
This commit is contained in:
Bjørn Erik Pedersen 2018-09-21 11:01:59 +02:00
parent ed4f1edbd7
commit dd692c710a
2 changed files with 8 additions and 2 deletions

View file

@ -44,6 +44,12 @@ func newPageCache() *pageCache {
return &pageCache{m: make(map[string][]pageCacheEntry)}
}
func (c *pageCache) clear() {
c.Lock()
defer c.Unlock()
c.m = make(map[string][]pageCacheEntry)
}
// get/getP gets a Pages slice from the cache matching the given key and
// all the provided Pages slices.
// If none found in cache, a copy of the first slice is created.

View file

@ -1012,6 +1012,8 @@ func (s *Site) setupSitePages() {
}
func (s *Site) render(config *BuildCfg, outFormatIdx int) (err error) {
// Clear the global page cache.
spc.clear()
if outFormatIdx == 0 {
if err = s.preparePages(); err != nil {
@ -1514,8 +1516,6 @@ func (s *Site) resetBuildState() {
s.expiredCount = 0
spc = newPageCache()
for _, p := range s.rawAllPages {
p.subSections = Pages{}
p.parent = nil