减小 golang build 编译后程序包的文件大小

更新日期: 2020-04-23 阅读次数: 6957 字数: 199 分类: golang

在 Golang Gin 写的后台程序加上 GoAdmin 之后,go build 生成的发布包体积已经达到了 30M 之巨。上传阿里云服务器,以 400K/s 的传输速度得上传1分钟。

30075408

网上找到一个解决方案,加上编译参数:

go build -ldflags "-s -w"

体积减小到了 23M。

22778576

文件大小降幅大约四分之一。

编译参数

  • -s 的作用是去掉符号信息。去掉符号表,golang panic 时 stack trace 就看不到文件名及出错行号信息了。
  • -w 的作用是去掉 DWARF tables 调试信息。结果就是得到的程序就不能用 gdb 调试了。

DWARF tables

DWARF tables needed for debuggers

更极端的压缩方法

https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/

tags: golang ldflags

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式