Go程序优化101

本书将列出一些Go编程中的一些性能优化技巧和建议。 大致包括以下几方面的内容:

Go优化101

(约150页,75+优化建议)

本书目前尚未免费阅读。 请在微信中搜素“Go 101“或者扫描本网站首页中展示的公众号二维码关注“Go 101”微信公众号。 该微信公众号将时不时地免费放出一些章节。

从2016年7月开始,老貘(本书作者)开始编写《Go语言101》丛书和维护此Go101.org网站。 目前,各种改进和新的内容仍在源源不断地加入本丛书和此网站。 你的赞赏是本系列丛书和Go101.org网站不断增容和维护的动力。

赞赏二维码和其它联系信息见页底

感谢Olexandr Shalakhin授权使用这些可爱的地鼠图片。 其中一张图片使用在本书的封面中。

The English version of this book is available here.

目录:

  • 致谢
  • 关于《Go程序优化101》
  • 值部和值尺寸
    • 值尺寸
    • 内存对齐
    • 结构体字节填充
    • 避免大复制成本
  • 内存分配
    • 内存块和内存分配区域
    • 如何减少内存分配量和次数
  • 栈、堆和逃逸分析
    • 逃逸分析
    • 如何控制内存分配区域
    • 栈增长和收缩
    • 如何降低栈增长次数
  • 垃圾回收
    • 垃圾回收步幅控制
    • 如何降低垃圾回收压力
    • 控制垃圾回收频率
  • 指针
    • 3 事实和建议
  • 结构体
    • 3 事实和建议
  • 数组和切片
    • 11 事实和建议
  • 字符串和字节切片
    • 10 事实和建议
  • 边界检查消除(Bound Check Eliminate,BCE)
    • BCE起作用的情形
    • BCE不起作用的情形
    • BCE需要给出暗示才能起作用的情形
  • 映射
    • 7 事实和建议
  • 通道
    • 3 事实和建议
  • 函数
    • 如何尽量使一个函数可被内联
    • 如何使一个函数不可被内联
    • 指针和非指针参数对性能的影响
    • 具名和匿名返回结果对性能的影响
    • 10+ 事实和建议
  • 接口
    • 值装箱成本
    • 3+ 事实和建议

Go101.org网站内容包括Go编程各种相关知识(比如Go基础、Go优化、Go细节、Go实战、Go测验、Go工具等)。后续将不断有新的内容加入。敬请收藏关注期待。

本丛书微信公众号(联系方式一)名称为"Go 101"。二维码在网站首页。此公众号将时不时地发表一些Go语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。

《Go语言101》系列丛书项目目前托管在Github上(联系方式二)。欢迎各位在此项目中通过提交bug和PR的方式来改进完善《Go语言101》丛书中的各篇文章。我们可以在项目目录下运行go run .来浏览和确认各种改动。

本书的twitter帐号为@Golang_101(联系方式三)。玩推的Go友可以适当关注。

你或许对本书作者老貘开发的一些App感兴趣。

赞赏
(《Go语言101》系列丛书由老貘从2016年7月开始编写。目前此系列丛书仍在不断改进和增容中。你的赞赏是本系列丛书和此Go101.org网站不断增容和维护的动力。)