hugolib: Pre-allocate some slices

This commit is contained in:
Bjørn Erik Pedersen 2017-11-11 09:39:43 +01:00
parent b32ffed6ab
commit a9be687b81
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 7 additions and 6 deletions

View file

@ -142,9 +142,10 @@ func (p Pages) GroupBy(key string, order ...string) (PagesGroup, error) {
tmp.SetMapIndex(fv, reflect.Append(tmp.MapIndex(fv), ppv))
}
var r []PageGroup
for _, k := range sortKeys(tmp.MapKeys(), direction) {
r = append(r, PageGroup{Key: k.Interface(), Pages: tmp.MapIndex(k).Interface().([]*Page)})
sortedKeys := sortKeys(tmp.MapKeys(), direction)
r := make([]PageGroup, len(sortedKeys))
for i, k := range sortedKeys {
r[i] = PageGroup{Key: k.Interface(), Pages: tmp.MapIndex(k).Interface().([]*Page)}
}
return r, nil

View file

@ -76,10 +76,10 @@ func (c *PageCollections) refreshPageCaches() {
}
}
var partitions []cache.Partition
partitions := make([]cache.Partition, len(allKindsInPages))
for _, kind := range allKindsInPages {
partitions = append(partitions, cache.Partition{Key: kind, Load: cacheLoader(kind)})
for i, kind := range allKindsInPages {
partitions[i] = cache.Partition{Key: kind, Load: cacheLoader(kind)}
}
c.pageCache = cache.NewPartitionedLazyCache(partitions...)