mirror of
https://github.com/golang/go
synced 2024-11-17 07:35:05 -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 {
|
if len(args)%2 != 0 {
|
||||||
panic("uneven number of arguments to pprof.Labels")
|
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 {
|
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
|
// 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