除了内存扩展之外,64 位操作系统的其他好处是什么?

Jon*_*ior 40 operating-systems 64-bit

我试图说服某人切换到 64 位操作系统的好处,但我很难找到“您可以使用超过 3GB 的 RAM”以外的论据。拥有 64 位操作系统是否还有其他明显可传达的好处?

Ces*_*arB 27

  • 与 IA-32 相比,x86-64 的寄存器数量是 IA-32 的两倍,这使编译器可以生成更好的代码。
  • 在大多数操作系统上,64 位 ABI 允许生成比 32 位 ABI 更好的代码(例如,通过在寄存器而不是堆栈上传递参数)。
  • IA-32 上的一些扩展总是存在于 x86-64 上,因此程序可以使用它们而无需编写回退(例如一定级别的 SSE)。
  • 最后但并非最不重要的是 64 位time_t,随着我们接近 2038 年,这将变得越来越重要。

  • ashh:寄存器是 CPU 访问速度最快的存储位置,但在 x86 上,它们是*非常* 有限的资源。因此,如果您需要许多局部变量,则必须不断地将它们从寄存器移到堆栈,然后再移回堆栈,这需要时间。使用更多的寄存器,您可以一次容纳更多的寄存器,而无需使用堆栈。与只有两只手相比:你一次只能操作两件东西;用四只手,你可以做两倍的事情(如果你的大脑跟上,但现在暂时搁置)。 (4认同)
  • 你需要解释你的意思:“两倍多的寄存器,它允许编译器生成更好的代码”。什么是“更好的代码”? (2认同)

Chr*_*ton 7

事实上,您可以在 32 位操作系统上运行超过 3 GB(或超过 4 GB)的 RAM。 即使在 32 位操作系统上,PAE 也为 x86 或 x86-64 处理器提供了一种访问高达 64 GB 内存的方法。请注意,它不像运行 64 位操作系统那么简单。内存是分页的,因此每个进程仍然限制为最大 4 GB。此外,并非所有操作系统都支持这一点。某些版本的 32 位 Windows 使用了 PAE,但不幸的是,为了支持写得不好的驱动程序,大多数版本限制了对 4 GB 内存的支持。例如,Windows XP 和 Windows Vista 被限制为 4 GB(并且,如上所述,往往只公开大约 3 GB)。另一方面,Windows Server 2008 Enterprise, Datacenter 支持 64 GB 的 RAM。

作为2.6 内核的一部分,Linux 内核支持超过 4 GB 。但是,Linux 发行版有时会要求您安装“服务器”内核映像以使用此功能。


小智 5

这实际上取决于您想将操作系统用于什么目的。对于绝大多数“普通”用户来说,迁移到 64 位并没有真正给他们带来任何好处。目前 64 位真正有用的唯一领域是,如果您想使用超过 4GB 的内存(如您所述),或者使用不适合 32 位的数字进行计算。

最终,所有 PC 和操作系统都将只提供 64 位版本,但目前如果他们想做的只是上网或查看电子邮件,那么迁移到 64 位的需求并不迫切。

  • @marc,除非软件供应商开始编写需要 > 4GB RAM 的电子邮件客户端、Web 浏览器和文字处理器程序,否则大多数临时用户不会有这种感觉。再说一次,我相信不久就会发生这种情况。 (2认同)