mirror of
https://github.com/golang/go
synced 2024-11-17 04:55:07 -07:00
runtime: reduce allocations when building pprof LabelSet
Pre-allocate the slice of labels with enough capacity to avoid growslice calls. Change-Id: I89db59ac722c03b0202e042d1f707bb041e0999f Reviewed-on: https://go-review.googlesource.com/c/go/+/181517 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Michael Matloob <matloob@golang.org>
This commit is contained in:
parent
37373592af
commit
5fb74fc138
@ -60,11 +60,11 @@ func Labels(args ...string) LabelSet {
|
||||
if len(args)%2 != 0 {
|
||||
panic("uneven number of arguments to pprof.Labels")
|
||||
}
|
||||
labels := LabelSet{}
|
||||
list := make([]label, 0, len(args)/2)
|
||||
for i := 0; i+1 < len(args); i += 2 {
|
||||
labels.list = append(labels.list, label{key: args[i], value: args[i+1]})
|
||||
list = append(list, label{key: args[i], value: args[i+1]})
|
||||
}
|
||||
return labels
|
||||
return LabelSet{list: list}
|
||||
}
|
||||
|
||||
// Label returns the value of the label with the given key on ctx, and a boolean indicating
|
||||
|
Loading…
Reference in New Issue
Block a user