内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。,为什么可以提高访问内存的速度

来源:百度知道 编辑:UC知道 时间:2024/06/08 20:06:00
我想问的是,为什么cpu 取整型偏移量(如4字节,8字节之类)的 速度更快
这是为什么

简单地说,现在的CPU在设计时总线都是32,64,128位这样的,读数据的时候,只能读取偏移值为4,8,16的倍数地址开始的数据。对于32位机来说,如果一个long类型的变量跨越了4字节边界存储,那么cpu要读取两次,这样效率就低了。同样,在32位机中使用1字节或者2字节对齐,反而会使变量访问速度降低。

打个比方,
如果你有一副红色的扑克牌和一副蓝色的扑克牌,和两个抽屉
红色的扑克牌少了1张

如果不对齐的话就好比
你第一个抽屉放了红色的牌,因为红色少了一张,所以这个抽屉还可以放一张,于是你就那一张蓝色的放进来
其余的蓝色因为放不下了就放到了第二个抽屉内

如果对齐的话
不管第一个抽屉有没有放满,红色的放一个 蓝色的放另一个

如果要你去拿蓝色的牌,你说那种方式简单呢?

http://www.cppblog.com/cc/archive/2007/09/17/10765.html
详细解答