0

64 位发行版构建的程序总是比 32 位快吗?

两者都在 64 位机器上执行。

谢谢

4

3 回答 3

3

这取决于程序在做什么。

例如,如果它是一个国际象棋引擎,它使用位板表示棋子的放置和移动,那么我希望它比 32 位版本快得多

对于其他计算密集型应用程序,考虑到 x86-64 处理器可用的额外寄存器,它也应该更快。

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

于 2013-07-09T07:59:19.170 回答
3

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

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

于 2013-07-09T08:12:15.327 回答
0

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

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

如果可以,请始终使用 64 位。

于 2013-07-09T08:04:17.783 回答