Skip to content

Commit

Permalink
cmd/vet/all: use -dolinkobj=false to speed up runs
Browse files Browse the repository at this point in the history
When running on the host platform,
the standard library has almost certainly already been built.
However, all other platforms will probably need building.
Use the new -dolinkobj=false flag to cmd/compile
to only build the export data instead of doing a full compile.

Having partial object files could be confusing for people
doing subsequent cross-compiles, depending on what happens with #18369.
However, cmd/vet/all will mainly be run by builders
and core developers, who are probably fairly well-placed
to handle any such confusion.

This reduces the time on my machine for a cold run of
'go run main.go -all' by almost half:

benchmark           old ns/op        new ns/op        delta
BenchmarkVetAll     240670814551     130784517074     -45.66%

Change-Id: Ieb866ffb2cb714b361b0a6104077652f8eacd166
Reviewed-on: https://go-review.googlesource.com/37385
Run-TryBot: Josh Bleecher Snyder <[email protected]>
Reviewed-by: Brad Fitzpatrick <[email protected]>
Reviewed-by: Rob Pike <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
  • Loading branch information
josharian committed Feb 23, 2017
1 parent 005c77d commit 731fd00
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/cmd/vet/all/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,11 @@ func (p platform) vet(ncpus int) {
// Not installing leads to non-obvious failures due to inability to typecheck.
// TODO: If go/loader ever makes it to the standard library, have vet use it,
// at which point vet can work off source rather than compiled packages.
cmd := exec.Command(cmdGoPath, "install", "-p", strconv.Itoa(ncpus), "std")
gcflags := ""
if p != hostPlatform {
gcflags = "-dolinkobj=false"
}
cmd := exec.Command(cmdGoPath, "install", "-p", strconv.Itoa(ncpus), "-gcflags="+gcflags, "std")
cmd.Env = env
out, err := cmd.CombinedOutput()
if err != nil {
Expand Down

0 comments on commit 731fd00

Please sign in to comment.