routing: pre-allocate the distance map to an estimated node count

Pre-sizing these structures avoids a lot of map resizing, which causes
copies and rehashing of entries. We mostly know that the map won't
exceed that size, and it doesn't affect memory usage in any significant
way.
This commit is contained in:
Juan Pablo Civile
2019-08-23 12:27:02 -03:00
parent 2141713936
commit 3e60a23632
3 changed files with 23 additions and 17 deletions

View File

@@ -50,9 +50,10 @@ type distanceHeap struct {
// newDistanceHeap initializes a new distance heap. This is required because
// we must initialize the pubkeyIndices map for path-finding optimizations.
func newDistanceHeap() distanceHeap {
func newDistanceHeap(numNodes int) distanceHeap {
distHeap := distanceHeap{
pubkeyIndices: make(map[route.Vertex]int),
pubkeyIndices: make(map[route.Vertex]int, numNodes),
nodes: make([]nodeWithDist, 0, numNodes),
}
return distHeap