【问题标题】:Super slow compile time编译时间超慢
【发布时间】: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

有没有人经历过这个问题,可以给我一些关于这个问题的信息?谢谢!

【问题讨论】:

  • 如此缓慢的编译可能表明您安装了与当前平台或 GOOSGOARCH 环境变量指示的平台不同的 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


【解决方案1】:

首先检查问题是否在命令行 (CLI) 中仍然存在

如果是,请确保这不是PATH 问题,方法是在同一个 CMD 会话中设置一个简化的 PATH:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
set PATH=%USERPROFILE%\go\bin;%PATH%
set PATH=c:\go\bin;%PATH%

【讨论】:

  • 我这样做了,但同样的问题仍然存在。所有工具甚至在 CMD 中都持续缓慢。
  • @tiagomac 你正在使用哪个版本的寡妇?
猜你喜欢
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 2012-06-13
  • 2017-05-25
  • 1970-01-01
相关资源
最近更新 更多