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

更新日期: 2020-04-23 阅读次数: 650 字数: 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/

领取618阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

tags: golang ldflags

相关文章

爱评论不评论

近期节日

2020年06月11日 中国人口日
2020年06月20日 世界难民日
2020年06月21日 父亲节
2020年06月21日 夏至
2020年06月22日 中国儿童慈善活动日
2020年06月23日 国际奥林匹克日
2020年06月25日 全国土地日
2020年06月25日 端午节
2020年06月26日 国际禁毒日
2020年06月30日 世界青年联欢节
2020年07月01日 中国共产党诞生日
2020年07月01日 香港回归日
查看更多节日