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


40

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


1
好问题,我一直在想。也许您应该澄清一下要说服的人,因为如果我们谈论的是随意使用计算机的用户,那么下面的某些答案可能太技术性了。
灰烬

1
ashh:这是因为64位操作系统的利弊都是非常技术性的。至少在Linux上,对于非技术性最终用户而言,几乎没有明显的区别(甚至我经常忘记使用的机器是64位还是32位)。在Windows上,在64位上有更多的不兼容性和奇怪之处要解决,但除此之外,非技术性的最终用户几乎不会注意到差异。
CesarB

Answers:


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

2
您需要解释一下您的意思:“两倍的寄存器,这使编译器可以生成更好的代码”。什么是“更好的代码”?
灰烬

1
我还注意到64位整数的操作在64位代码中的运行速度大约是32位代码的四倍(我经常在这里选择错误的C编译器,然后想知道为什么Lua比C更快:))
Joey

4
ashh:寄存器是CPU可以最快访问的存储位置,但是在x86上,它们是非常有限的资源。因此,如果需要许多局部变量,则必须不断地将它们从寄存器移到堆栈,然后再移回,这需要时间。使用更多的寄存器,您一次可以保存更多的寄存器,而无需使用堆栈。与只有两只手的情况进行比较:您一次只能操作两件事;用四只手,您可以做两倍(如果您的大脑跟上,但是暂时不做)。
乔伊

@Johannes,您应该添加您的评论作为对此问题的答案!我在口头上提出要求,以便塞萨尔加入这样的说明。

1
您给出了几个技术原因,但没有解释它们的含义。什么是“更好的代码”,它如何使用户受益?
Igby Largeman

7

实际上,您可以在32位操作系统上运行3 GB以上(或4 GB以上)的RAM。 PAE提供了一种使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。

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


好点子。我无法弄清楚为什么人们仍然认为他们需要64位操作系统才能使用超过4GB的RAM。
neu242

使用Linux的另一种选择是运行64位内核和32位用户空间,这使您可以完全访问> = 4GB RAM,尽管每个进程仍限于4GB。
TRS-80

5

这实际上取决于您要使用操作系统的功能。对于绝大多数“普通”用户而言,迁移到64位并不能给他们带来太多好处。当前唯一真正有用的地方是64位,如果您要使用超过4GB的内存(如您所述),或者要使用不适合32位的数字进行计算。

最终,所有PC和OS都将只有64位版本,但是就目前而言,如果他们想要做的只是浏览互联网或查看电子邮件,就没有迫切需要迁移到64位。


对我来说,额外的内存支持确实已经足够升级。我敢打赌,随着时间的流逝,大多数临时用户也会有这种感觉:-)
marc_s

2
@marc,大多数临时用户不会有这种感觉,除非软件供应商开始编写需要> 4GB RAM的电子邮件客户端,Web浏览器和文字处理器程序。再说一遍,我相信不久之后就会发生。
灰烬

@ashh我的Firefox已经喜欢使用〜2 GB RAM。不会花那么长时间:)
Quiark

4

您不仅拥有超过3 GB的RAM,而且任何在编译/编写时考虑到64位的软件都可以使用64位寄存器和数据类型,这些绝对可以加快移动大量数据的应用程序的速度,例如3D程序, CAD,Photoshop等

但是,如果您只是一个普通的乔,无法使用创意程序,只是阅读电子邮件,浏览网络,观看YouTube视频,除非插入需要64位设备的设备,否则您可能根本不会注意到。位驱动程序,但供应商尚未发布任何驱动程序。


2
我在很多场合都遇到过这个问题。如果您使用的是x-64位系统作为服务器,那么在开始添加其他硬件时,您可能会发现令人讨厌的惊喜。我遇到的困境的一个很好的说明性例子是,当我尝试向系统中添加3COM 3c509 NIC卡时。没有用于旧版硬件的驱动程序。我发现我已经筋疲力尽,不得不购买高级的英特尔NIC卡才能使用可以正常工作的64位驱动程序。随着时间的流逝,这个问题将消失。供应商没有足够的动力来支持旧硬件。
Axxmasterr

@Axxmasterr:ISA插槽和x64 CPU支持在同一块主板上吗?认真吗 那里不可能有那么多。这是某种工业PC吗?
bk1e

3

.NET JIT(即时)引擎在x64版本中包含更高级的优化(例如,尾递归优化)。这意味着.NET应用程序具有在64位系统上更快运行的潜力。


0

不,就是这样。

对于一般家庭用户,x64没有任何优势。如果有的话,因为您的所有指针现在都是64位,您可能会发现自己使用了更多的内存来执行相同的操作。

x64的唯一显着优势是更多的内存,而目前只有服务器才真正使用它。


0

如果可以找到流行软件的一些不错的64位版本,那么可以,升级到64位将是一个优势。并且某些应用程序有64位版本。但是,这些应用程序往往与图像处理,电影编辑以及声音编辑有关。基本上,只有处理数据负载的应用程序。如果您的系统有更多的可用RAM,则系统可以更快地处理数据并且可以存储更多数据,因此在PC上观看DVD电影的质量也将得到提高。

如果您倾向于同时运行许多应用程序,那么性能也会有所提高。(即使所有这些应用程序都是32位版本!)为什么?因为OS本身可以更轻松地处理额外的内存,因此允许更多的应用程序保留在内存中,从而减少了交换到交换文件的次数。(您也可以拥有更大的交换文件!)

但是我升级到64位,因为我做了很多图像操作,这需要功能强大的系统和大量内存。(嗯,至少我需要很多内存。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.