优化 go build 可执行文件过大的问题
原始大小
(以 macOS 为例)
按照一般方式 build,在本例子中,可以看到生成文件为 10M。
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build
优化
第一步
省略调试信息及符号表。
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build -ldflags="-w -s"
-w Omit the DWARF symbol table.
-s Omit the symbol table and debug information.
可以看到体积减小到7.3M (比起始大小-27%)。
第二步
安装 upx,对文件进一步压缩。
brew install upx
upx appname
可以看到体积骤减至2.9M。(2次优化后比起始大小-71%)