ref: a9be687b81df01c7343f78f0d3760042f467baa4
parent: b32ffed6abc67646cad89e163846f3ffef29cec8
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Nov 11 04:39:43 EST 2017
hugolib: Pre-allocate some slices
--- a/hugolib/pageGroup.go
+++ b/hugolib/pageGroup.go
@@ -142,9 +142,10 @@
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
--- a/hugolib/page_collections.go
+++ b/hugolib/page_collections.go
@@ -76,10 +76,10 @@
}
}
- 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...)