>文章来源于:https://talkgo.org/night/84-2020-04-02-go-aligned/
## YouTube
https://youtu.be/8a2G2MXRUxw
## 简介
关于内存对齐总会有各种声音?为什么要对齐,怎么对齐,不对齐有什么影响么?
这些声音可以离我们很远,也可以很近,比如:
- 当你想弄明白`WaitGroup.state1`为什么是`[3]uint32`而不是`[12]byte`
- 当你想知道`struct`是否占用内存是否合理
- 当你不希望在32位系统上原子操作`int64|uint64`时发生panic
- 当你闲着没事就是想读读源码提升下逼格。。。
本次分享借自己研究内存对齐的一些代码及源码示例,为大家带来Go里边的内存对齐是什么样的,以及如何利用内存对齐优化数据结构,提高代码的平台兼容性。
## 大纲
- 了解内存对齐的收益
- 为什么要对齐
- 怎么对齐:
- 数据结构对齐
- 内存地址对齐
- 64位字的安全访问保证(32位平台)
**更多原创文章干货分享,请关注公众号**
![](https://static.gocn.vip/photo/2020/61284b9d-4bf0-4ac6-9c51-06d3e2b2d964.jpg?x-oss-process=image/resize,w_1920)
有疑问加站长微信联系(非本文作者)