]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/pprof: preallocate slice in pprof.go
authorGyu-Ho Lee <gyuhox@gmail.com>
Sun, 5 Jun 2016 06:20:45 +0000 (23:20 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 12 Oct 2016 06:33:34 +0000 (06:33 +0000)
To prevent slice growth when appending.

Change-Id: I2cdb9b09bc33f63188b19573c8b9a77601e63801
Reviewed-on: https://go-review.googlesource.com/23783
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/pprof/pprof.go

index b4dd1c4173caeeceac0b5bd4ac0cdd633041902b..9fd477908c26e8997576764b7c54be56f51fe728 100644 (file)
@@ -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)