Go夜读 第 84 期图解 Go 之内存对齐

mai_yang for Go 夜读 · 2020年04月21日 · 656 次阅读

文章来源于:https://talkgo.org/night/84-2020-04-02-go-aligned/

YouTube

简介

关于内存对齐总会有各种声音?为什么要对齐,怎么对齐,不对齐有什么影响么?

这些声音可以离我们很远,也可以很近,比如:

  • 当你想弄明白WaitGroup.state1为什么是[3]uint32而不是[12]byte
  • 当你想知道struct是否占用内存是否合理
  • 当你不希望在 32 位系统上原子操作int64|uint64时发生 panic
  • 当你闲着没事就是想读读源码提升下逼格。。。

本次分享借自己研究内存对齐的一些代码及源码示例,为大家带来 Go 里边的内存对齐是什么样的,以及如何利用内存对齐优化数据结构,提高代码的平台兼容性。

大纲

  • 了解内存对齐的收益
  • 为什么要对齐
  • 怎么对齐:
    • 数据结构对齐
    • 内存地址对齐
  • 64 位字的安全访问保证(32 位平台)

更多原创文章干货分享,请关注公众号

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册