jal*_*alf 14
通常的经验法则(直接来自英特尔和AMD的优化手册)是每种数据类型都应该按照自己的大小对齐.一个int32应在32位边界对齐,一个int6464位边界上,依此类推.一个char适合任何地方.
另一个经验法则当然是"编译器已被告知对齐要求".您无需担心它,因为编译器知道添加正确的填充和偏移以允许有效访问数据.
唯一的例外是使用SIMD指令时,您必须手动确保大多数编译器的对齐.
其次,如果它是正确的,那么应该将数据结构成员对齐在8字节边界上.但我见过人们在这些处理器上使用4字节对齐.
我不知道这有什么不同.CPU可以简单地为包含这4个字节的64位块发出读取.这意味着它要么在请求的数据之前或之后获得4个额外的字节.但在这两种情况下,它只需要一次读取.32位数据的32位对齐确保它不会跨越64位边界.
物理总线是64位宽... 8的倍数 - >是
但是,还有两个因素需要考虑:
| 归档时间: |
|
| 查看次数: |
15187 次 |
| 最近记录: |