在 Ubuntu 上运行 Go(Golang)程序“感觉缓慢”,通常不是语言本身的问题,而是环境、编译方式或系统配置导致的。下面按常见原因 → 排查方法 → 解决建议来说明。
Go 是编译型语言,但很多人误以为:
go run main.go
是“直接运行”。
实际上:
go run 会 先编译,再执行✅ 解决:
go build -o app main.go
./app
go run 而不是编译后的二进制在服务器或性能测试中:
go run main.go # 慢
vs
./app # 快
✅ 生产环境一定要用编译好的二进制。
如果你在:
Go 编译会大量读写磁盘,IO 慢 → 编译慢
✅ 检查:
df -h
top
✅ 建议:
/mnt/cGo 会频繁访问:
GOPATHGOCACHEGOMODCACHE如果它们在:
会非常慢。
✅ 查看:
go env GOCACHE GOPATH GOMODCACHE
✅ 建议:
export GOCACHE=/home/you/.cache/go
export GOPATH=/home/you/go
Ubuntu 上如果有:
会实时扫描 .go 文件和二进制。
✅ 检查:
ps aux | grep clam
常见:
✅ 排查:
GODEBUG=gctrace=1 ./app
或用 pprof:
import _ "net/http/pprof"
在 Docker 或低配云主机:
nproc
lscpu
Go 默认会用全部 CPU,但:
都会“看起来慢”。
go version
go env GOCACHE GOPATH
nproc
df -h
top
请告诉我:
go version我可以直接帮你判断是哪一类问题。