shithub: hugo

Download patch

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...)