From a98fe70021ca6e4292e2ad58de723e8aaa15c97b Mon Sep 17 00:00:00 2001 From: Gregory Oschwald Date: Sun, 14 Jul 2024 14:04:04 -0700 Subject: [PATCH] Reduce allocations in Networks Slice length of 64 is used as most IPv6 trees will have that as their maximum depth. --- traverse.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/traverse.go b/traverse.go index 26cd9d9..4ad60df 100644 --- a/traverse.go +++ b/traverse.go @@ -93,13 +93,14 @@ func (r *Reader) NetworksWithin(prefix netip.Prefix, options ...NetworksOption) }) } - nodes := []netNode{ - { + nodes := make([]netNode, 0, 64) + nodes = append(nodes, + netNode{ ip: prefix.Addr(), bit: uint(bit), pointer: pointer, }, - } + ) for len(nodes) > 0 { node := nodes[len(nodes)-1]