在 64 位操作系统上运行 32 位程序与 64 位程序

在 64 位操作系统上运行 32 位程序与 64 位程序

如果我运行的是 64 位操作系统(Windows XP x64 版),并且某个程序同时具有 32 位版本和 64 位版本,那么使用 64 位版本有什么优势?它会更​​快吗?

答案1

XP 64 位并不比 32 位更安全。

Vista 和(更好的)Windows 7 以 64 位模式引入,通过硬件支持的 DEP、内核补丁保护和强制驱动程序签名增强了安全性。

因此 XP 的唯一优势是 64 位程序可以使用超过 4 GB 的内存。
但是,实际上,除了大型服务器外,没有程序需要这么多内存。

答案2

如果您运行 64 位版本,它将能够处理更多内存,并且如果它经过良好优化(某些游戏就是如此),性能可能会有不到 10% 的提升。但一般来说,最终用户不会感觉到。

我认为大多数人运行 64 位只是因为内存寻址问题。

答案3

如果程序执行以下任一操作:

  • 访问超过 2 或 3 GB 的内存
  • 对 64 位整数进行算术运算,尤其是乘法和除法
  • 假设 64 位版本具有更高的 CPU 代数/功能集,并利用(例如 SSE 指令)
  • 充分利用两倍宽度的 SIMD 寄存器

那么 64 位可以是大的赢。

如果上述情况都不是,那么 64 位版本将更大、占用更多内存,并且可能会更慢!我对一个程序和库测试进行了基准测试,这两种方式都构建了测试,32 位版本速度更快。显然,它的缓存效果更差,指针越大,结构就越大,内存使用量的增加导致任何给定层级的缓存 RAM 都无法容纳尽可能多的内容。额外的寄存器并不能弥补这一点。

不同处理器代数、型号和品牌的差异各不相同。但总体而言,内存访问是一个真正的速度瓶颈,而且是一个持久的趋势。

相关内容