减小 Go 二进制文件大小

减小 Go 二进制文件大小

在未进行任何优化的情况下,由此创建的二进制文件较为庞大。这会浪费存储空间,传送流量。因此,在开发过程中,我们需要考虑对二进制文件进行优化处理,以尽可能地减小其体积,同时保证程序的正常运行。

image-20230518101225349

使用 go build 构建二进制文件,此时的大小是 19.1 MB,这也太大了。

image-20230518101414061

使用 go build --ldflags "-s -w" 构建,减少了 5.7 MB。

image-20230518102039681

经过使用UPX进行压缩,文件大小从19.1MB成功减小至5.4MB。

总结

  1. 使用-ldflags="-s -w"进行静态链接优化,这将删除二进制文件中的调试信息和符号表,从而减小二进制文件大小。
  2. 使用类似于upx的工具进行压缩,进一步减小二进制文件大小。
  3. 如果程序中包含网页,请尽可能避免使用框架,而应该使用原生的HTML/CSS/JS来完成。若网页大小大概只有几百KB,则可以直接将其嵌套到二进制文件中。
1
2
# macbook 使用 brew 安装 upx
brew install --build-from-source upx
Licensed under CC BY-NC-SA 4.0
本文阅读量 次, 总访问量 ,总访客数
Built with Hugo .   Theme Stack designed by Jimmy