64 位发行版构建的程序总是比 32 位快吗?
两者都在 64 位机器上执行。
谢谢
这取决于程序在做什么。
例如,如果它是一个国际象棋引擎,它使用位板表示棋子的放置和移动,那么我希望它比 32 位版本快得多。
对于其他计算密集型应用程序,考虑到 x86-64 处理器可用的额外寄存器,它也应该更快。
但是,并非所有程序都如此,例如,如果问题是内存密集型的并且从文件系统读取内存,那么 64 位版本可能会由于 I/O 而变慢。
在大多数情况下,是的,确实如此。64 位程序可以享受更多的 CPU 寄存器、更大的地址空间(即使程序实际上不需要超过 2GB 也可能会加快堆上的内存分配),因此堆管理更容易处理堆碎片化。
但在某些情况下它也可能更慢,主要是因为 64 位二进制文件通常比 32 位二进制文件更大并且占用更多内存。每个指针占用 8 个字节而不是 4 个字节。这可能会导致重要数据是否适合 CPU 缓存的差异。如果它是用于紧密计算循环的数据,它可以产生速度差异。然而,“正常”程序几乎都遇到了这个问题。
x86-64 应该比 x86-32 更快。
__fastcall
的 . 您传递给函数的前四个参数是通过寄存器传递的。如果可以,请始终使用 64 位。