问题描述
32位和64位Ubuntu有什么区别?我听说64位平台性能更好,可以检测到4GB以上的内存。另外,虽然有些应用尚未移植到64位,但ia32-libs
让64位机器运行它们。
如果是这样,为什么不推动64位超过32位?
最佳解决办法
我相信在32位和64位之间选择的主要问题不是“我的处理器是否支持64位 – 如果是,那么我应该使用64位,因为这是两倍”,但“我有多少内存?”。
与64位程序相比,64位程序使用的内存大约增加了50%。这个结果是:
-
更少的代码/数据可以放入处理器缓存中 – >更多缓存未命中 – >您的super-fast处理器等待更多内存控制器从RAM中获取数据。处理器还需要读取更多的数据,因为它更臃肿。
-
Linux使用non-allocated RAM来缓存磁盘。可用内存不足 – >磁盘缓存空间更少 – >较慢的磁盘访问
-
一旦你离开RAM并且系统开始交换 – 磁盘访问速度比RAM慢数千倍,所以64位代码(见下文)的任何潜在优势都将飞出窗外。
另一方面,在64位模式下,处理器有更多的寄存器,因此它不需要经常访问内存,而且一些计算(64位数字等)更有效。所以一般来说,不是memory-restricted的代码在64位模式下运行得稍快。
所以,如果你的系统具有2GiB或更少的内存,那么我肯定会选择32位。 4GiB以上 – 64位的好处变得更加突出。 4GiB左右是”grey zone”–你需要自己做出选择。
下面是一个(相当古老)的vanilla Ubuntu在1GiB RAM的VirtualBox中运行的屏幕截图:
32位:引导后立即使用388M的内存,没有额外的应用程序运行(屏幕截图为397780KiB,即388MiB)
64位:使用RAM的491 MiB(来自截图,503452KiB = 491MiB)
另外,在我的测试中,用Python编写的web-application在64位计算机上使用多达60%的内存,导致测试套件在32位计算机上运行380秒,但在64位计算机上运行523秒(都带有1G的RAM)。如果机器不是RAM-limited,结果可能会不同(如phoronix测试所示)。
这里有一些更彻底和最近的测试:http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods
基本上,这就像放弃30%的RAM,以换取10%的CPU速度。
次佳解决办法
如果您不关心学习技术细节,请选择推荐的32位版本。
即使客观难以注意,64位通常也会更快。这与64位数据宽度有关,但是在整个指令集中有16个以上的8个通用CPU寄存器。因此,为管理和更大的指针而浪费更多的内存的缺点大部分都被消除了。
实际问题:不是每个人都有一个兼容AMD64的CPU。在标准i686版本上推广64位会导致更多的用户沮丧。因此,在接下来的几年中,向普通用户展示32位版本并不那么令人困惑。对于知道的人来说,这不是一个问题,因为64位版本已经可用了。除了最初的下载外,我们的64位用户没有任何缺点。所有软件包均可在两种架构下使用。
在这种情况下,Ubuntu下载页面对我来说看起来没问题。它说“32位(推荐)”,但是”recommended”意味着“如果您不知道计算机的所有技术细节,那么问题会更少”。对于上网本版下载页面,甚至没有选择,因为即使在2010年一些Intel原子CPU也只有32位!所以总而言之,我认为避免兼容性问题仍然是必要的。不过,我同意至少应该在-64比-32更快的行上写一个闪亮的脚注,并建议目标系统支持IF(但仅限于IF)。
第三种解决办法
The terms 32-bit and 64-bit refer to the way a computer’s CPU handles information. The 64-bit version handles large amounts of RAM more effectively than a 32-bit system. 1
-
要运行64位操作系统,您需要64位CPU的支持。
-
要运行64位应用程序,您需要64位操作系统和64位CPU的支持。
-
一般规则是32位(OS和应用程序)将在64位上运行,但64位(OS和应用程序)不能在32位上运行:
-
32位操作系统将在32位或64位处理器上运行,没有任何问题。
-
一个32位应用程序可以在32位或64位操作系统上运行,没有任何问题。
-
但是64位应用程序只能在64位操作系统上运行,而64位操作系统只能在64位处理器上运行。
需要64位兼容CPU来安装64位操作系统。请与您的PC制造商联系,以确定您的系统是否兼容64位。
32位系统具有4 GB RAM内存限制,这意味着即使系统上安装了更多内存,它们仍无法处理超过4 GB的RAM(并非所有内容都将被使用)。解决方法可用,但对于普通用户很难做到。
注意:Ubuntu 12.10和更新版本会自动支持PAE。在12.10之前,您可以根据您的CPU选择PAE支持。 PAE将32位上的最大RAM扩展到64GB,可以找到更多信息here.
64位版本具有其他优势,包括增加的带宽,启用硬件DEP(数据执行预防)和更好的内核保护。
大多数32位应用程序将继续在64位系统上工作,但某些应用程序根本无法工作,或运行速度较慢。
欲了解更多信息,你可以看看32-bit and 64-bit
1来源:Microsoft
第四种办法
正如Phoronix中指出的here:“随着Ubuntu multi-arch情况被清除,大多数应用程序和plug-ins现在可以在64位(如Adobe Flash和Java)上正常工作,并且64位通常比32位快很多真的不是转移到x86_64版本的理由。“
虽然它是discussed,如果64位将被指定为默认值而不是32位,我认为你的性能会有一些提升。参见these benchmarks。
还有一句话是来自Phoronix的”low” RAM内存:“Ubuntu开发人员一直非常担心32位上网本仍然存在,对于只有2GB内存的系统,使用x86_64软件可能会导致运行不稳定内存,从而增加了SWAP的使用率,但对于绝大多数用户来说,他们在64位世界中表现要好得多。“
也许你可以安装它并观察系统是否经常使用swap。
第五种办法
我回头看看Ubuntu Precise LTS。以下是我跑过的一些分析的一些结果:
基本上,如果你有4GB或更少,那么可以考虑使用i386-pae或amd64。 64位系统消耗更多内存(例如,指针的大小为64位),但由于使用64位副本的优化或使用可在64位模式下使用的额外CPU寄存器,您可能会在64位系统上看到性能优势。
第六种办法
对我来说最重要的是你不能在32位操作系统上使用ZFS文件系统,因为它由于32位操作系统的vmalloc限制(不管是PAE还是nonPAE)而不稳定。这是我重新安装到64位的原因,我从不回头。甚至NVIDIA在”troubleshooting”页面上关于vmalloc的东西几行也没有,最后鼓励用户切换到64位内核。
在32位模式下有1GB的地址限制,所以即使它可以使用高达4GB,只有1GB是所谓的”low”,其余的是”high memory”,这是不一般的。而1GB真的很小,现在..尝试#free -l
第七种办法
如前面的海报所述,64位和32位是指计算机在一次操作中可以移动的数据大小。这涉及到CPU上寄存器的大小和总线的宽度(寄存器只是保存CPU操作的数据,它们在消费类硬件中很小,并且自家庭计算开始以来一直在增长。总线将主板的不同部分连接在一起,它们是数据流经的高速公路)。
问题在于,大多数操作系统在转向64位操作时遇到了一些实际问题,对驱动程序和应用程序的支持不足。在早期版本中,应用程序实际上往往表现较差。鉴于大多数人没有真正的理由跳入深度,Linux powers-that-be似乎正在采取比咳嗽其他操作系统慢一点的缓慢但稳定的步伐。
第八种办法
对于普通的用户体验,官方Ubuntu网站建议32位版本由于更灵活的调整。我在这里计数也意味着数据一致性。
对于任何职业球员和对手来说,都有很多积分。我的观点是与64位软件和驱动程序直接相关的英特尔架构64位处理器上的64位操作系统的卓越性能,可以让您有机会击败32位常规性能。
请注意,在64位操作系统上使用32位软件有时会导致性能不佳,甚至在非常不同的情况下会导致过热。
但是,通过您签名的组件和此参考:Intel® Extended Memory 64 Technology: 64-Bit Desktop Computing …使用4Gb +内存可以获得更好的体验。
我指望这将是一个很好的,而不是非常昂贵的解决方案。
是的,同时使用这两种系统可以让你更清楚地理解你的配置和多功能性的意义。
第九种办法
基本上我会说如果你需要使用64位版本的话。
如果你主要浏览网页,看YouTube,在facebook上闲逛,看电影等,那么32位更好,因为你不需要任何好硬件来做这些事情。
如果你在Steam,WINE等游戏上运行程序,做一些媒体编辑,那么64位就是最好的选择。
所以随便使用那么32位操作系统,先进使用然后64位版本。