前言
之前遇到过这样一个情况(发现问题的结构体并不长这样, 不过为了引出问题, 改了一下):
type Test struct {
b bool
i3 int32
i8 int8
i64 int64...简单说, 就是CPU在读取数据的时候, 并不是一个字节一个字节读取的, 而是一块一块读取的. 那么这个快是多大呢? 根据CPU位数不同而不同....而现有地址中, 首个4的整数倍为第四个字节(中间三字节留空).
?...修改
既然知道了问题出在哪里, 那么是不是如果换一下字段的存放顺序, 就可以压缩内存空间了呢?...仅仅是修改了一下字段的顺序, 就可以将结构体的内存占用直接降低一倍. 见识了...
检测工具
那么, 有没有什么办法能够帮我们检测是否存在内存对齐的优化呢? 毕竟平常写的时候, 谁会关心这玩意呢.