From 6362ccb0d26e3d8b7015fee600efc2a1f3ca871a Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 20 Sep 2017 18:17:12 -0700 Subject: [PATCH] preallocate protocol slice This was showing up on CPU profiles as a significant source of repeated allocations. We don't really care about over allocation (don't keep these slices around) and should rarely have more than 8 protocols in a single address. --- multiaddr.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multiaddr.go b/multiaddr.go index 41c0d0b..7350ea6 100644 --- a/multiaddr.go +++ b/multiaddr.go @@ -78,7 +78,7 @@ func (m *multiaddr) Protocols() []Protocol { } }() - var ps []Protocol + ps := make([]Protocol, 0, 8) b := m.bytes for len(b) > 0 { code, n, err := ReadVarintCode(b)