我试图说服某人改用 64 位操作系统的好处,但除了“您可以使用超过 3GB 的 RAM”之外,我很难找到其他论据。使用 64 位操作系统还有其他可以明确表达的好处吗?
答案1
- x86-64 与 IA-32 相比,寄存器数量是其两倍,这使得编译器能够生成更好的代码。
- 在大多数操作系统上,64 位 ABI 允许生成比 32 位 ABI 更好的代码(例如,通过在寄存器而不是堆栈上传递参数)。
- IA-32 上的一些扩展在 x86-64 上始终存在,因此程序可以使用它们而无需编写后备代码(例如某个级别的 SSE)。
- 最后但并非最不重要的一点是,64 位
time_t
,随着 2038 年的临近,它将变得越来越重要。
答案2
事实上,您可以在 32 位操作系统上运行超过 3 GB(或超过 4 GB)的 RAM。 聚丙烯酰胺凝胶电泳为 x86 或 x86-64 处理器提供了一种即使在 32 位操作系统上也能访问高达 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。
Linux 内核支持超过 4 GB 的2.6 内核但是,Linux 发行版有时会要求您安装“服务器”内核映像才能使用此功能。
答案3
这实际上取决于您想用操作系统做什么。对于绝大多数“普通”用户来说,升级到 64 位实际上并没有给他们带来太多好处。目前 64 位真正有用的领域是您想要使用超过 4GB 的内存(如您所述),或者使用 32 位无法容纳的数字进行计算。
最终,所有个人电脑和操作系统都将只提供 64 位版本,但就目前而言,如果他们只想上网或查看电子邮件,则没有迫切需要转向 64 位。
答案4
.NET JIT(Just-In-Time)引擎在 x64 版本中包含更多高级优化(例如尾部递归优化)。这意味着 .NET 应用程序有可能在 64 位系统上运行得更快。