2016年8月18日 Go生态洞察:Go 1.7版本二进制文件缩小


🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁
🦄 博客首页 ------🐅🐾猫头虎的博客🎐

🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺

🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐

🌊 《100天精通Golang(基础入门篇)》 🐅 学会Golang语言,畅玩云原生,走遍大小厂~💐

🐅🐾猫头虎建议Go程序员必备技术栈一览表📖:

☁️🐳 Go语言开发者必备技术栈☸️ :

🐹 GoLang | 🌿 Git | 🐳 Docker | ☸️ Kubernetes | 🔧 CI/CD | ✅ Testing | 💾 SQL/NoSQL | 📡 gRPC | ☁️ Cloud | 📊 Prometheus | 📚 ELK Stack


🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🐅🐾🍁🐥


文章目录

2016年8月18日 Go生态洞察:Go 1.7版本二进制文件缩小

摘要

🐯 猫头虎博主为您呈现Go 1.7的新动向!Go 1.7的一个重要进步是二进制文件大小的显著减小,这对于部署在小型设备上的Go应用尤其重要。搜索词条:Go 1.7,二进制文件缩小。

引言

🚀 Go是为编写服务器而设计的,但随着它在各种程序中的应用日益增多,我们不得不考虑新的问题,比如二进制文件的大小。在Go 1.7版本中,我们特别关注了这一点。

正文

🛠️ Go 1.7中完成的工作

Go 1.7中有三个显著的变化影响到了二进制文件的大小。

  1. 新的SSA后端:这个新后端不仅提高了性能,也生成了更小的代码,使Go二进制文件缩小了约5%。我们期待在Go 1.8中转换为SSA的其他架构,如ARM和MIPS,能获得更大的收益。

  2. 方法裁剪:编译器现在会丢弃任何未使用的未导出方法,这个变化使二进制文件缩小了5-20%。

  3. 更紧凑的运行时类型信息格式:通过压缩格式,进一步缩小了Go二进制文件5-15%。在Android和iOS上构建的库和归档文件由于新格式包含更少的指针,因此缩小得更多。

📊 结果

使用Go 1.7构建的典型程序,从小型玩具到大型生产程序,大小约减少了30%。例如,典型的"Hello, World!"程序从2.3MB减少到1.6MB。当不包含调试信息时,静态链接的二进制文件现在不到一兆字节。

大型生产程序jujud从94MB减少到67MB。位置独立的二进制文件减少了50%。

📚 表格总结

关键点 描述
新的SSA后端 优化生成代码,减少二进制文件大小
方法裁剪 移除未使用的方法,进一步缩小文件大小
运行时类型信息格式 更紧凑的格式,缩小二进制文件
二进制文件缩小 典型程序缩小约30%,更适合小型设备部署

总结

Go 1.7的更新使得二进制文件大小显著减小,这对于希望在小型设备上部署Go应用的开发者来说是个好消息。感谢所有为此作出贡献的人!

本文被猫头虎的Go生态洞察专栏收录,详情点击这里

下一篇预告

🔮 下一篇我们将探讨如何使用子测试和子基准测试。敬请期待!

原创声明

======= ·

  • 原创作者: 猫头虎

  • 作者wx: Libin9iOak

  • 作者公众号: 猫头虎技术团队

学习 复习 Go生态

本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,洞察Go生态,共同成长。

相关推荐
学步_技术33 分钟前
Python编码系列—Python组合模式:构建灵活的对象组合
开发语言·python·组合模式
ac-er88881 小时前
在Flask中处理后台任务
后端·python·flask
ac-er88881 小时前
Flask中的钩子函数
后端·python·flask
o独酌o1 小时前
递归的‘浅’理解
java·开发语言
Book_熬夜!1 小时前
Python基础(六)——PyEcharts数据可视化初级版
开发语言·python·信息可视化·echarts·数据可视化
waterHBO1 小时前
R语言 基础笔记
开发语言·笔记·r语言
m0_631270401 小时前
高级c语言(五)
c语言·开发语言
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
2401_858286112 小时前
53.【C语言】 字符函数和字符串函数(strcmp函数)
c语言·开发语言
Flying_Fish_roe2 小时前
Spring Boot-版本兼容性问题
java·spring boot·后端