From 4984da6f043e38008d4c6a4d7ed292276296ef82 Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 28 Dec 2017 18:41:18 +0000 Subject: [PATCH] fly-by optimisation save a few allocations --- render/metrics.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/render/metrics.go b/render/metrics.go index 79b008ea0..92566519b 100644 --- a/render/metrics.go +++ b/render/metrics.go @@ -21,16 +21,20 @@ func (p propagateSingleMetrics) Render(rpt report.Report) Nodes { nodes := p.r.Render(rpt) outputs := make(report.Nodes, len(nodes.Nodes)) for id, n := range nodes.Nodes { - var found []report.Node + var first report.Node + found := 0 n.Children.ForEach(func(child report.Node) { if child.Topology == p.topology { if _, ok := child.Latest.Lookup(report.DoesNotMakeConnections); !ok { - found = append(found, child) + if found == 0 { + first = child + } + found++ } } }) - if len(found) == 1 { - n = n.WithMetrics(found[0].Metrics) + if found == 1 { + n = n.WithMetrics(first.Metrics) } outputs[id] = n }