以下是在Ubuntu下提升Golang编译速度的方法:
- 优化编译选项
- 使用
-c仅编译不链接,-s去除调试信息,-p设置并行编译数(如-p 4)。 - 启用
-buildcache true或设置GOCACHE环境变量缓存中间结果。
- 使用
- 优化代码结构
- 拆分大型包为小模块,避免循环依赖,使用
-modvendor将依赖存入vendor目录。
- 拆分大型包为小模块,避免循环依赖,使用
- 硬件与工具优化
- 使用多核CPU、SSD硬盘和足够内存,利用
GOMAXPROCS设置并行编译数。 - 用
UPX压缩可执行文件(需先安装),减少体积。
- 使用多核CPU、SSD硬盘和足够内存,利用
- 依赖与版本管理
- 升级到Go 1.10+版本(含编译器优化),通过
go mod tidy清理无用依赖。 - 使用
GOPROXY加速依赖下载(如export GOPROXY=https://goproxy.cn)。
- 升级到Go 1.10+版本(含编译器优化),通过
- 其他技巧
- 静态编译(
CGO_ENABLED=0)避免动态库依赖,或通过-ldflags="-s -w"减小编译体积。
- 静态编译(
参考来源: