我想我专注于x86,但我通常对从32位到64位的移动感兴趣.
从逻辑上讲,我可以看到常量和指针在某些情况下会更大,因此程序可能会更大.为了提高效率而在字边界上分配内存的愿望意味着分配之间会有更多的空白.
我还听说x86上的32位模式必须在上下文切换时刷新其缓存,因为可能存在重叠的4G地址空间.
那么,64位的真正好处是什么?
作为补充问题,128位会更好吗?
编辑:
我刚刚编写了我的第一个32/64位程序.它生成16字节(32b版本)或32字节(64b版本)对象的链接列表/树,并对stderr进行大量打印 - 不是一个非常有用的程序,而不是典型的,但它是我的第一个.
大小:81128(32b)v 83672(64b) - 所以差别不大
速度:17s(32b)v 24s(64b) - 在32位OS(OS-X 10.5.8)上运行
更新:
我注意到正在开发一种新的混合x32 ABI(应用程序二进制接口),它是64b但使用32b指针.对于某些测试,它导致比32b或64b更小的代码和更快的执行.