内存对齐
什么是内存对齐
内存对齐规则是为了确保数据在内存中的存储方式符合 CPU 访问内存的最佳方式,以提高数据读写的效率。具体规则如下
- 起始地址对齐:任何类型(包括基本类型和复合类型如结构体 struct)的实例在内存中的起始地址必须是其大小的整数倍。这个大小通常是该类型的大小或对齐边界,具体取决于哪个更大;
- 整体占用内存大小对齐:类型实例在内存中所占用的空间,其总大小必须是对齐边界的整数倍;
- 对齐边界的确定
- 对于基本类型,对齐边界通常是类型的大小,也可能受到硬件平台的要求(如 32 位平台上通常为 4 字节对齐,64 位平台上通常为 8 字节对齐);
- 对于结构体(struct),其对齐边界是其所有字段中最大对齐要求的那一个。
机器字长:操作的字节数。 一个内存条的一面是 rank、包括 8 个 chip,一个 chip 包括 8 个 bank 内存对齐要求数据存储地址以及占用字节数都要是它的对齐边界的倍数。
最后更新于