aboutsummaryrefslogtreecommitdiff
path: root/src/os/exec
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2019-03-02 11:14:33 -0800
committerJosh Bleecher Snyder <josharian@gmail.com>2019-03-02 20:11:47 +0000
commitbeadf433c37498dafc6748cc510eeab2636b5be3 (patch)
tree253d503e500e66fae542f65e1dd91797f71fd110 /src/os/exec
parent37b84e2782e5c19c3053316853a6fba923b0f06b (diff)
downloadgo-beadf433c37498dafc6748cc510eeab2636b5be3.tar.xz
os/exec: provide map size hint in dedupEnvCase
The common case is that most env vars are distinct; optimize for that. name old time/op new time/op delta ExecEcho-8 2.16ms ± 3% 2.14ms ± 1% ~ (p=0.315 n=10+10) name old alloc/op new alloc/op delta ExecEcho-8 7.87kB ± 0% 6.35kB ± 0% -19.31% (p=0.000 n=9+10) name old allocs/op new allocs/op delta ExecEcho-8 72.0 ± 0% 69.0 ± 0% -4.17% (p=0.000 n=10+10) Change-Id: I42bb696c6862f2ea12c5cbd2f24c64336a7a759a Reviewed-on: https://go-review.googlesource.com/c/164960 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/os/exec')
-rw-r--r--src/os/exec/exec.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go
index 1aa3ab93dc..7b2b2ebd92 100644
--- a/src/os/exec/exec.go
+++ b/src/os/exec/exec.go
@@ -713,7 +713,7 @@ func dedupEnv(env []string) []string {
// If caseInsensitive is true, the case of keys is ignored.
func dedupEnvCase(caseInsensitive bool, env []string) []string {
out := make([]string, 0, len(env))
- saw := map[string]int{} // key => index into out
+ saw := make(map[string]int, len(env)) // key => index into out
for _, kv := range env {
eq := strings.Index(kv, "=")
if eq < 0 {