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)
64 位:使用 491 MiB 的 RAM(从屏幕截图来看,503452KiB = 491MiB)
此外,在我的测试中,用 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 对此进行了研究。以下是我进行的一些分析的结果:
基本上,如果您有 4GB 或更少的空间,那就没问题了,如果超过 4GB,请考虑使用 i386-pae 或 amd64。64 位系统会消耗更多内存(例如,指针大小为 64 位),但您可能会看到 64 位系统上的性能提升,因为使用了 64 位副本或使用 64 位模式下可用的额外 CPU 寄存器进行了优化。