From: Gyu-Ho Lee Date: Sun, 5 Jun 2016 06:20:45 +0000 (-0700) Subject: runtime/pprof: preallocate slice in pprof.go X-Git-Tag: go1.8beta1~930 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=456b7f5a974f229e0ef7ad5a1925fa72fc4182e2;p=gostls13.git runtime/pprof: preallocate slice in pprof.go To prevent slice growth when appending. Change-Id: I2cdb9b09bc33f63188b19573c8b9a77601e63801 Reviewed-on: https://go-review.googlesource.com/23783 Run-TryBot: Brad Fitzpatrick Reviewed-by: Russ Cox --- diff --git a/src/runtime/pprof/pprof.go b/src/runtime/pprof/pprof.go index b4dd1c4173..9fd477908c 100644 --- a/src/runtime/pprof/pprof.go +++ b/src/runtime/pprof/pprof.go @@ -202,7 +202,7 @@ func Profiles() []*Profile { lockProfiles() defer unlockProfiles() - var all []*Profile + all := make([]*Profile, 0, len(profiles.m)) for _, p := range profiles.m { all = append(all, p) } @@ -293,7 +293,7 @@ func (p *Profile) WriteTo(w io.Writer, debug int) error { } // Obtain consistent snapshot under lock; then process without lock. - var all [][]uintptr + all := make([][]uintptr, 0, len(p.m)) p.mu.Lock() for _, stk := range p.m { all = append(all, stk)