在 Ubuntu 上编译 Go 程序“慢”,通常不是 Go 语言本身的问题,而是环境、配置或项目结构导致的。下面按常见原因给你梳理一下,并给出对应解决办法。
如果你每次编译都:
go mod download就会非常慢。
✅ 解决:
go env -w GOPROXY=https://proxy.golang.org,direct
go env -w GOFLAGS=-mod=mod
并确保:
echo $GOPATH
# 默认 ~/go
缓存目录不要频繁删除。
go build 而不是增量编译Go 本身支持增量编译,但以下情况会“假装很慢”:
rm -rf 再编译✅ 解决:
$GOCACHEUbuntu 上常见:
✅ 检查:
nproc
free -h
✅ 建议:
比如:
go build -race
go test -race
CGO_ENABLED=1
这些都会显著变慢。
✅ 正常编译:
CGO_ENABLED=0 go build
✅ 优化:
Go 编译是 IO 密集型。
✅ 检查:
df -T
如果是:
都会明显慢。
对比测试:
time go build
小项目(几 MB):
大项目(K8s 级):
WSL1 跑 Go 编译:灾难级慢
✅ 解决:
wsl --set-version Ubuntu 2
Ubuntu 上:
balootracker会扫描 .go 文件。
✅ 解决:
GOPATH / 项目目录go version
nproc
free -h
go env GOPATH GOCACHE
如果你的项目:
那“慢”是正常的。
如果你愿意,可以告诉我:
go build 具体命令我可以直接帮你定位是哪一类问题。