显然,64 位处理器具有 64 位地址空间,因此您可以使用超过 4 GB 的 RAM。将相同的程序编译为 64 位并在 64 位 CPU 上运行是否有任何其他优势可能实际上有益于那些不是巨大内存占用的程序?
我问的是一般的 CPU,特别是与 Intel 兼容的 CPU。
Wikipedia 上有一篇很棒的文章,介绍了 64 位 Intel/AMD cpus 与 32 位版本的区别和优势。它应该包含您需要的所有信息。
一些主要区别是:
64 位 CPU 的主要优点是能够拥有 64 位指针类型,允许大于 4GB 的虚拟地址范围。在 32 位 CPU 上,指针大小(通常)为 32 位宽,允许指针引用 2^32 (4,294,967,296) 个离散地址之一。这允许程序在内存中创建一个最大为 4GB 的数据结构,并通过简单地取消引用指针来解析其中的任何数据项。现实比这稍微复杂一些,但就本次讨论而言,这是一个足够好的观点。
64 位 CPU 具有 64 位指针类型,可以引用具有 2^64 (18,446,744,073,709,551,616) 个离散地址或 16 艾字节空间的任何地址。像这样的 CPU 上的进程可以(理论上)通过简单地取消引用指针(在指针中保存的地址处查找数据)来构造和逻辑寻址高达 16 艾字节大小的数据结构的任何部分。
这允许 64 位 CPU 上的进程处理比 32 位 CPU 上的进程更大的数据集(受物理内存限制)。从大多数 64 位系统用户的角度来看,主要优势是应用程序能够处理内存中更大的数据集。
除此之外,您可能会得到一个原生的 64 位整数类型。一个 64 位整数使用 64 位类型(例如 C 语言)进行算术或逻辑运算long long
比使用两个 32 位运算实现的更快。浮点运算不太可能受到显着影响,因为大多数现代 32 位 CPU 上的 FPU 本机支持 64 位double
浮点类型。
任何其他性能优势或增强的功能集都是特定芯片实现的功能,而不是具有 64 位 ALU 的系统所固有的功能。
这篇文章可能会有所帮助:
这个有点离题,但如果您打算使用 Ubuntu,可能会有所帮助:
http://ubuntuforums.org/showthread.php?t=368607
下面的 pdf 包含详细的技术规范:
http://www.plmworld.org/access/tech_showcase/pdf/Advantage%20of%2064bit%20WS%20for%20NX.pdf
轻微修正。在 32 位 Windows 上,该限制约为 3GB 的 RAM。我相信剩余的 1GB 地址空间是为硬件保留的。您仍然可以安装 4GB,但只能访问 3 个。
就我个人而言,我认为任何在以前的生活中没有愉快地在 8 位操作系统上使用 16K 生活的人都应该小心不要对今天开始成为猪的一些软件进行诽谤。事实是,随着我们的资源变得更加丰富,我们的期望也在增加。不久之后 3GB 将开始显得小得离谱。在那一天之前,坚持使用您的 32 位操作系统并保持快乐。
由于 32 位计算的指令级并行性,速度提高了大约 1-3%。
只是想添加一些关于 64 位 CPU 的优缺点的信息。https://blogs.msdn.microsoft.com/joshwil/2006/07/18/should-i-choose-to-take-advantage-of-64-bit/
32 位处理器和 64 位处理器之间的主要区别在于它们的运行速度。64 位处理器可以提供用于家庭计算的双核、四核和六核版本(即将推出八核版本)。多核允许增加处理能力和更快的计算机操作。在大多数情况下,需要许多计算才能运行的软件程序在多核 64 位处理器上运行得更快。需要注意的是,即使 Windows 操作系统是 64 位版本,64 位计算机仍然可以使用基于 32 位的软件程序。
32 位处理器和 64 位处理器之间的另一个重大区别是支持的最大内存 (RAM) 量。32 位计算机最多支持 3-4GB 的内存,而 64 位计算机可以支持超过 4 GB 的内存量。这对于用于图形设计、工程设计或视频编辑的软件程序很重要,其中执行许多计算以渲染图像、绘图和视频片段。
需要注意的一点是 3D 图形程序和游戏不会从切换到 64 位计算机中受益很多(如果有的话),除非程序是 64 位程序。32 位处理器足以满足为 32 位处理器编写的任何程序。在电脑游戏的情况下,通过升级视频卡而不是获得 64 位处理器,您将获得更多的性能。
最后,64 位处理器在家用电脑中变得越来越普遍。由于价格更便宜,而且现在越来越多的用户使用 64 位操作系统和程序,大多数制造商都使用 64 位处理器制造计算机。计算机零件零售商提供的 32 位处理器越来越少,而且很快可能根本不提供任何产品。