内存对齐是什么-对齐的本质是位置和大小-主语是结构体

目的:保证cpu对结构体数据的存取效率;

执行:在编译器层面;

规则:成员的起始位置、结构的大小、数组中的结构等做出的约束;

参量(对齐因子):缺省按照结构体内的最大尺寸单元对齐;可以指定pack.

 

表现:

结构体的内存对齐形式上像一个报文;

最大尺寸的的成员变量占据报文的一行;

小尺寸的成员变量通过共用一行和填充等技术;

在整体上保证报文的完整性。

 

结论:

1、对象内存模型的数据分布不连续;

2、具体位置和编译器、编译指令、cpu等有关。

 

数据结构内存对齐进化史:

1、不对齐:所有元素在内存中紧密排列

优点:节省内存

缺点:影响cpu访问速度;

 

2、全部对齐:所有元素的起始位置都在字长或对齐因子整数倍的位置:

优点:存取快;

缺点:内存浪费;

 

3、合并对齐:将尺寸小的元算按照原则合并;

元素起始位置的计算流程;

posted @ 2018-12-03 18:23  zzfx  阅读(246)  评论(0编辑  收藏  举报