]> Cypherpunks repositories - gostls13.git/commit
os: parse command line without shell32.dll
authorAlex Brainman <alex.brainman@gmail.com>
Sun, 24 Apr 2016 03:37:12 +0000 (20:37 -0700)
committerAlex Brainman <alex.brainman@gmail.com>
Fri, 24 Mar 2017 00:53:03 +0000 (00:53 +0000)
commit39c8d2b7faed06b0e91a1ad7906231f53aab45d1
tree09297eb989f135e39732b86245b052b768fd30ad
parentcc48b01883271920f7c111b0815790492b2a95c7
os: parse command line without shell32.dll

Go uses CommandLineToArgV from shell32.dll to parse command
line parameters. But shell32.dll is slow to load. Implement
Windows command line parsing in Go. This should make starting
Go programs faster.

I can see these speed ups for runtime.BenchmarkRunningGoProgram

on my Windows 7 amd64:
name                old time/op  new time/op  delta
RunningGoProgram-2  11.2ms ± 1%  10.4ms ± 2%  -6.63%  (p=0.000 n=9+10)

on my Windows XP 386:
name                old time/op  new time/op  delta
RunningGoProgram-2  19.0ms ± 3%  12.1ms ± 1%  -36.20%  (p=0.000 n=10+10)

on @egonelbre Windows 10 amd64:
name                old time/op  new time/op  delta
RunningGoProgram-8  17.0ms ± 1%  15.3ms ± 2%  -9.71%  (p=0.000 n=10+10)

This CL is based on CL 22932 by John Starks.

Fixes #15588.

Change-Id: Ib14be0206544d0d4492ca1f0d91fac968be52241
Reviewed-on: https://go-review.googlesource.com/37915
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/os/exec_windows.go
src/os/export_windows_test.go
src/os/os_windows_test.go