RSS
菜单

Go 内存对齐原理:struct 字段顺序如何影响内存占用

CPU 按字长(64 位 8 字节)访问内存,变量地址需对齐到其自然对齐边界(int64→8、int32→4),否则部分平台报错或性能下降。Go 结构体字段按声明顺序对齐,会有 padding(填充字节):struct { a int8; b int64 } 占 16 字节(a 后补 7 字节);调整字段顺序可减小结构体大小:struct { b int64; a int8 } 占 16(a 后补 7)→ 实际 struct{a int8; c int8; b int64} 占 16 vs 按大小排序可到 16→更好例子:{a int8, b int32, c int64} = 16,排 {c, b, a} = 16? 一般按大小降序排最省。影响:内存占用、缓存命中、原子操作(64 位原子要求 8 字节对齐)。

下载推广海报

圈内讨论推广海报

《Go 内存对齐原理:struct 字段顺序如何影响内存占用》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。