|
发表于 2006-3-25 01:13:14
|
显示全部楼层
现在CPU的L1 cache line通常是64字节,也就是存取一次内存是以64字节为单位的,因此如果指令中存取的内存跨了64字节的边界,就会带来额外的操作。这也是为什么需要对齐的原因。但是char本身是单字节的,所以应该不会带来这些后果。
至于说机器字长的效率高,应该是指处理相同数据量时,尽可能一次操作处理尽量多的数据。而这个测试程序使用char和int时是保持操作次数相同,因此我实在想不通为什么char会慢。
Post by mousse
觉得和对齐是有关系的,寻址的时候如果是机器字长的话不存在奇偶存储体带来的问题,但是不等长的其他数据类型都有可能使机器多次读取。不知道对不对........ |
|