64位版本构建程序是否总是比32位快?

时间:2013-07-09 07:57:37

标签: visual-studio-2012

64位版本构建的程序是否总是比32位快?

两者都在64位计算机上执行。

由于

3 个答案:

答案 0 :(得分:3)

这取决于程序正在做什么。

如果它是一个国际象棋引擎,例如,使用了bitboard representation的棋子放置和移动,那么我希望它比32位版本更快 。< / p>

对于其他计算密集型应用程序,它应该更快,因为x86-64处理器可以使用额外的寄存器。

然而,对于所有程序都不是这样,例如,如果问题是内存密集型并且从文件系统读取内存,那么64位版本可能由于I / O而变慢。

答案 1 :(得分:3)

在大多数情况下,是的,确实如此。 64位程序可以享受更多的CPU寄存器,更大的地址空间(即使程序实际上不需要超过2GB,也可以加速堆上的内存分配)因此堆管理更容易处理堆碎片。

但在某些情况下它也可能更慢,主要是因为64位二进制文​​件通常更大,并且比32位对应文件占用更多的内存。每个指针需要8个字节而不是4个。这可能会导致重要数据是否适合CPU缓存。如果它是在紧密计算循环中使用的数据,它可以使速度差异。然而,“正常”程序几乎不会遇到这个问题。

答案 2 :(得分:0)

x86-64应该比x86-32更快。

  • x86-64有更多寄存器。
  • 它可以在一条指令中执行64位操作。
  • 它使用了改进的__fastcall。传递给函数的前四个参数通过寄存器传递。

如果可以的话,总是使用64位。