结构体内存对齐 8的倍数
操作系统内存对齐 16的倍数
内存对齐的概念有两个方面:
1.结构体内存对齐:
2.操作系统内存对齐:
结构体内存对齐:
我们都知道OC对象的本质就是底层转化为C++结构体。
结构体的所有成员变量, 某个成员变量所占用的内存最大。 那结构体的内存大小就这个成员变量内存大小的倍数进行分配。
基本上是按8的倍数进行计算
操作系统内存对齐:
操作系统为了更好的性能。硬性规定的,是按16的倍数进行分配。
解决思路:
先计算所有成员变量累计加起来占用多少内存。
结构体实际占用大小:就是找跟8的倍数靠近的数值。
操作系统分配大小: 找跟16的倍数靠近的数值。
网友评论