Joh*_*Liu 6 c c++ hardware performance memory-management
我注意到当我用整数替换所有字节实例时,我的nds应用程序工作得快一点.所有在线示例尽可能放置u8/u16实例.为什么会出现这种情况?
Dan*_* Li 16
Nintendo DS使用的主处理器是ARM9,一个32位处理器.
参考:http://en.wikipedia.org/wiki/ARM9

通常,CPU将以字大小进行操作,在本例中为32位.根据您的操作,必须将字节转换为整数或反之亦然可能会对处理器造成额外的压力.这种转换以及对32位整数以外的值的潜在缺乏指令可能导致速度不足.
与Daniel Li所说的相反,ARM平台上的内存访问必须是字对齐的,即内存提取必须是32位的倍数.从存储器中获取字节变量意味着获取包含相关字节的整个字,并执行所需的逐位操作以使其适合处理器寄存器的最低有效位.
这些额外的指令由编译器自动发出,因为它知道变量的实际对齐方式.
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |