【发布时间】:2020-09-30 17:27:16
【问题描述】:
我在我的电脑上正常使用 Go,它的编译速度非常快(
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello")
}
执行时间超过 10 秒:
[Running] go run "c:\dev\workspace\go\test\src\main.go"
Hello
[Done] exited with code=0 in 45.596 seconds
[Running] go run "c:\dev\workspace\go\test\src\main.go"
Hello
[Done] exited with code=0 in 16.242 seconds
[Running] go run "c:\dev\workspace\go\test\src\main.go"
Hello
[Done] exited with code=0 in 14.759 seconds
[Running] go run "c:\dev\workspace\go\test\src\main.go"
Hello
[Done] exited with code=0 in 15.492 seconds
[Running] go run "c:\dev\workspace\go\test\src\main.go"
Hello
[Done] exited with code=0 in 16.047 seconds
我已经尝试过的:
- 卸载所有内容并重新安装;
- 将 Go 版本更改为 1.4(它改进了编译时间,但 没什么大不了的,就像在这个版本中它编译在 ~7 秒,是什么让它变慢了)
- 尝试了其他 IDE(想法)
现在我正在使用最新的 Go 版本:
$ go version
go version go1.15.2 windows/amd64
我的“去环境”:
$ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\ticunha\AppData\Local\go-build
set GOENV=C:\Users\ticunha\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\dev\workspace\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\dev\workspace\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ticunha\AppData\Local\Temp\1\go-build323480842=/tmp/go-build -gno-record-gcc-switches
有没有人经历过这个问题,可以给我一些关于这个问题的信息?谢谢!
【问题讨论】:
-
如此缓慢的编译可能表明您安装了与当前平台或
GOOS和GOARCH环境变量指示的平台不同的 Go SDK,这将需要重新编译标准库以每次目标平台。检查你是否有 64 位架构,你应该有 windows-amd64 SDK(而不是 windows-386 例如)。 -
请注意,
go run时间是编译和执行,而不仅仅是编译。 -
"将 Go 版本更改为 1.4" -- 我希望这实际上不是您所做的。 Go 1.4 是古老的......更不用说更慢。
-
您发布的
[Running] ... [Done]序列来自vscode 的Output选项卡,对吗?从外部控制台执行go run .../main.go时,您是否看到同样的缓慢?并从 vscode 中的嵌入式终端?
标签: go