• Daniel Martí's avatar
    os/exec: less allocs in the common case · d1887676
    Daniel Martí authored
    When Stdin, Stdout, and Stderr are nil, there are no goroutines to keep
    track of, so we don't need a channel.
    
    And in startProcess, preallocate the right size for sysattr.Files,
    saving a bit of space and a couple of slice growth allocs.
    
    name            old time/op    new time/op    delta
    ExecHostname-8     419µs ± 0%     417µs ± 1%    ~     (p=0.093 n=6+6)
    
    name            old alloc/op   new alloc/op   delta
    ExecHostname-8    6.40kB ± 0%    6.28kB ± 0%  -1.86%  (p=0.002 n=6+6)
    
    name            old allocs/op  new allocs/op  delta
    ExecHostname-8      34.0 ± 0%      31.0 ± 0%  -8.82%  (p=0.002 n=6+6)
    
    Change-Id: Ic1d617f29e9c6431cdcadc7f9bb992750a6d5f48
    Reviewed-on: https://go-review.googlesource.com/c/164801
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    d1887676
exec_plan9.go 3.29 KB