在64位架构上以32位模式编译应用程序时引入的性能有何不同?
例如,在运行64位版本Linux的计算机上使用带有-m32
选项的gcc。
程序是否会在充分利用SIMD指令的情况下进行编译?
普通程序是否会从额外寄存器中受益匪浅?
答案 0 :(得分:1)
假设您没有大量使用大型mmaps或长long类型,性能损失最多只有几个百分点,可能没什么重要意义。 64位版本也可能更大,这在考虑在低资源系统上引起内存分页的可能性时无论如何都可能是一个缺点。还有一些寄存器可用,但在大多数程序中,这对速度影响不大。
指令集不会因此而减少,它不会使用CPU的64位模式,因此不会使用64位扩展版本的指令。
在此处查看有关性能影响的更多信息: http://en.wikipedia.org/wiki/64-bit_computing#32-bit_vs_64-bit