32 位和 64 位有什么区别?我应该选择哪一个?

32 位和 64 位有什么区别?我应该选择哪一个?

32 位和 64 位 Ubuntu 有什么区别?我听说 64 位平台性能更好,可以检测到超过 4GB 的 RAM。此外,虽然有些应用程序尚未移植到 64 位,但ia32-libs可以让 64 位机器运行它们。

如果是这样,为什么不推广 64 位而不是 32 位呢?

答案1

我认为在 32 位和 64 位之间进行选择时,主要问题不是“我的处理器是否支持 64 位?如果支持,那么我应该使用 64 位,因为 64 位的性能好两倍”,而是“我有多少记忆?”

64 位程序比 32 位程序多使用大约 50% 的内存。结果是:

  • 处理器缓存中可以容纳的代码/数据越少 -> 缓存未命中次数越多 -> 超快处理器需要等待内存控制器从 RAM 获取数据。处理器还需要读取更多的数据,因为它比较臃肿。

  • Linux 使用未分配的 RAM 来缓存磁盘。可用内存越少 -> 磁盘缓存空间越少 -> 磁盘访问速度越慢

  • 一旦 RAM 用完了,系统就开始交换 - 磁盘访问速度比 RAM 慢数千倍,因此 64 位代码的任何潜在优势(见下文)都将消失。

另一方面,在 64 位模式下,处理器拥有更多寄存器,因此不需要经常访问内存,而且某些计算(64 位数字等)效率更高。因此,一般而言,不受内存限制的代码在 64 位模式下运行速度会稍快一些。

因此,如果您的系统有 2GiB 或更少的 RAM,那么我肯定会选择 32 位。超过 4GiB - 64 位的优势越来越明显。4GiB 左右是“灰色地带” - 您需要自己做出选择。

下面是在具有 1GiB RAM 的 VirtualBox 中运行的(相当旧的)原始 Ubuntu 的屏幕截图:

32 位:启动后立即使用 388 MiB RAM,没有运行其他应用程序(从屏幕截图来看,397780KiB,即 388MiB)

32 位 Ubuntu

64 位:使用 491 MiB 的 RAM(从屏幕截图来看,503452KiB = 491MiB)

64 位 Ubuntu

此外,在我的测试中,用 Python 编写的 Web 应用程序在 64 位机器上占用的内存高达 60%,这导致测试套件在 32 位机器上运行需要 380 秒,但在 64 位机器上运行需要 523 秒(两者都有 1GiB 的 RAM)。如果机器不受 RAM 限制,结果可能会有所不同(如 phoronix 测试所示)。

以下是一些更详细和最新的测试:http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods

内存可用 已用内存 已使用交换

基本上,这就像放弃 30% 的 RAM 来换取可能收益CPU 速度提高 10%。

答案2

如果您不想了解技术细节,请选择推荐的 32 位版本。

64 位通常更快,即使客观上很难注意到。这与 64 位数据宽度关系不大,但与整个指令集上 8 个公共 CPU 寄存器中的 16 个可用有关。因此,浪费更多内存进行管理和更大指针的缺点基本被消除了。

实际问题:并非每个人都拥有兼容 AMD64 的 CPU。推广 64 位版本而不是标准 i686 版本会导致更多用户感到沮丧。因此,在接下来的几年里,向普通用户展示 32 位版本不会造成太多困惑。对于任何知情人士来说,这都不是什么问题,因为 64 位版本随时可用。除了初始下载之外,我们 amd64 用户不会因为这种情况而受到任何不利影响。所有软件包都适用于这两种架构。

在这种情况下,Ubuntu 下载页面对我来说看起来还不错。它说“32 位(推荐)”,但“推荐”的意思是“如果您不了解计算机的所有技术细节,则问题会更少”。对于上网本版下载页面,甚至没有选择,因为即使在 2010 年,某些 Intel 原子 CPU 也只有 32 位!
所以总而言之,我认为避免兼容性问题仍然是必要的。但是,我同意至少应该有一个闪亮的脚注,说明 -64 比 -32 更快,并且如果(但仅当)目标系统支持它,则推荐它。

答案3

32 位和 64 位这两个术语指的是计算机 CPU 处理信息的方式。64 位版本比 32 位系统更有效地处理大量RAM。1

  • 要运行 64 位操作系统,您需要 64 位 CPU 的支持。
    • 要运行 64 位应用程序,您需要 64 位操作系统和 64 位 CPU 的支持。

一般规则是 32 位(操作系统和应用程序)可以在 64 位上运行,但 64 位(操作系统和应用程序)不能在 32 位上运行:

  • 32 位操作系统可以在 32 位或 64 位处理器上毫无问题地运行。
  • 32 位应用程序可以在 32 位或 64 位操作系统上毫无问题地运行。
  • 但是 64 位应用程序只能在 64 位操作系统上运行,而 64 位操作系统只能在 64 位处理器上运行。

安装 64 位操作系统需要兼容 64 位的 CPU。请咨询您的 PC 制造商,了解您的系统是否兼容 64 位。

32 位系统的 RAM 内存限制为 4 GB,这意味着即使系统上安装了更多 RAM,它们也无法处理超过 4GB 的 RAM(并非所有 RAM 都会被使用)。有解决方法,但对于普通用户来说很难做到。

笔记:Ubuntu 12.10 及更新版本将自动支持 PAE。在 12.10 之前,您可以根据您的 CPU 选择 PAE 支持。PAE 将 32 位的最大 RAM 扩展到 64GB,更多信息可参见这里。

64 位版本具有其他优势,包括增加的带宽、硬件启用的 DEP(数据执行保护)和更好的内核保护。

大多数 32 位应用程序将继续在 64 位系统上运行,但有些应用程序根本无法运行,或者运行速度会变慢。

有关详细信息,您可以查看32 位和 64 位

1来源:微软

答案4

不久前,我针对 Ubuntu Precise LTS 对此进行了研究。以下是我进行的一些分析的结果:

http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/low-memory-systems/readme.txt

http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/hpmini-and-x220-tests/results-3/results.txt

基本上,如果您有 4GB 或更少的空间,那就没问题了,如果超过 4GB,请考虑使用 i386-pae 或 amd64。64 位系统会消耗更多内存(例如,指针大小为 64 位),但您可能会看到 64 位系统上的性能提升,因为使用了 64 位副本或使用 64 位模式下可用的额外 CPU 寄存器进行了优化。

相关内容