为什么 x64 位版本比 x32 位版本快得多?

为什么 x64 位版本比 x32 位版本快得多?

最近我发现我的旧笔记本电脑(Toshiba Satellite L500-1DT)运行基于 x64 的 Ubuntu 版本比运行 x32 版本效果更好。更快的意思是 Adob​​e Flash 视频和应用程序运行得更好。软件中心和 APT 应用程序运行得更顺畅。在 x64 上一切都运行正常。冷却风扇工作得少了很多(不像在 x32 上那样一直冷却系统)。在使用 x32 位版本时,我感觉我的电脑会过热。2 周前,当我运行 x32 版本时,我的电池没电了。我不知道是因为过热还是巧合。它变得非常热,而且非常非常慢。我使用的是 Celeron(R) 双核 CPU T3000 @ 1.80GHz × 2 和 Intel GMA45 视频芯片组(带 256mb 共享内存)。RAM - 4 GB。Ubuntu 11.10。

这不是唯一一个案例,也不是我发现的唯一一台 x64 比所谓的“推荐的 32 位版本”运行得更好的机器。我对此非常好奇,希望一劳永逸地知道答案。

请向我解释一下或者给我一个链接指导我。

谢谢 !

答案1

呃,“速度是原来的两倍甚至更快,具体取决于运行的硬件“??啊,如果世界真的这样运转就好了。

例如,看一下这篇文章:Ubuntu 12.04 LTS:32 位与 64 位性能。虽然一些综合基准测试显示性能大幅提升,但也有许多基准测试显示性能提升幅度很小(10% 到 30%),没有提升,甚至性能下降。这些只是综合基准测试,通常无法提供有用的见解,让您了解系统在执行基准测试以外的其他操作时的性能如何。

系统性能在很大程度上受到“系统”瓶颈的影响,因此您无法做出诸如两倍的位数意味着两倍的性能之类的笼统概括。

话虽如此,我仍然尝试使用 64 位操作系统,因为我希望性能至少会更好一些。虽然 CPU 寄存器的大小增加了一倍,但更重要的是寄存器的数量从 x86 中的 8 个增加到 x86_64 64 位模式下的 16 个。这使得编译器可以生成更快的代码。有许多这样的指令调整虽然在任何一个实例中这可能都不显著,但当在整个系统上使用时,它就会累积起来,从而带来有用的性能提升。

由于可以在“兼容模式”下运行,因此为 32 位 x86 编译的程序的性能损失很小(如果有的话)。

人们经常会得出这样的结论:如果你的内存只有 4GB 或更少,那么 32 位和 64 位之间就没有区别,因此没有理由使用 64 位版本。这根本不是事实。CPU 的指令架构在 64 位模式下有很大不同(在我看来),如果你的硬件支持 64 位操作系统,那么你最好使用 64 位操作系统。

毕竟,您不会想在 16 位模式下运行 32 位 CPU,对吧?:-)

答案2

简而言之:与 x86 相比,x86_64 模式下有更多操作寄存器可用。此外,还有令人困惑的命名x32ABI 不是 x86(_32),而是 x86_64 和纯 x86 的混合。顺便说一句,我给你链接的文章很好地解释了为什么 x86_64 往往具有更高的性能。

答案3

如此极端的差异并不典型,并且与 64 位模式的任何一般优势无关。

我怀疑您看到的要么是某种与您的硬件相关的错误,要么是设备固件中由 Ubuntu 的 32 位内核触发的错误。

答案4

64 位操作系统的运行速度是 32 位操作系统的两倍,甚至更快,具体取决于操作系统所运行的硬件。从 32 位升级到 64 位操作系统可以提高操作系统处理更大数据块的能力。因此,操作系统的运行速度要快得多。此外,64 位操作系统比 32 位操作系统占用更多的内存。64 位寄存器可以存储 2 64 = 18446744073709551616 个不同的值,这个数字超过了 18 千万亿。目前,x86-64 处理器使用 48 条物理地址线;因此,具有 64 位内存地址的处理器可以直接访问 264 TB 的字节可寻址内存。

相关内容