64 位 GNU/Linux 是否具有更好的性能?

64 位 GNU/Linux 是否具有更好的性能?

我之前用的是 32 位 Ubuntu(带 Xfce),现在换成了 64 位 Xubuntu,我不太确定,但我认为 32 位的性能更好,但只是感觉而已。我想知道 32 位和 64 位哪个性能更好。

我问的不是内核而是整个系统。

我的机器:华硕笔记本电脑 k51e,配备 4GB Ram 和 AMD Sempron 2 GHz 处理器。

答案1

AMD 未经重新设计就将 64 位支持塞进了 Sempron。这必然需要做出很多妥协,因为针对 64 位操作进行优化的设计在很低的水平上会存在很多根本差异。

因此,在 Sempron 上,64 位模式下的 64 位操作比 32 位模式下的类似 32 位操作慢约 35%。当然,如果您需要两个 32 位操作而不是一个 64 位操作,那么 64 位模式仍然胜出。但是,如果您用 32 位操作替换 64 位操作(就像内核对指针所做的那样),那么您将承受性能损失。

64 位操作仍有很多好处。在您需要时,64 位操作速度明显更快。而且您拥有两倍的通用寄存器。

不幸的是,64 位程序往往比 32 位程序需要更多的内存带宽,而 Sempron 的内存控制器只有一个通道。它依靠缓存来隐藏这一成本,但 64 位程序移动的数据更多,因此在缓存大小相同的情况下,缓存未命中率往往更高。

所以你的结果其实并不那么令人惊讶。

答案2

您通常会期望 64 位操作系统获得相同或更好的性能(取决于软件的编写方式和编译选项),除非您的系统内存非常受限 - 64 位计算机在表示某些值时可能会占用更多内存。

答案3

进行搜索,你会发现大量的基准像这样。平均而言,64 位应用程序的性能会略好一些,因为 x86-64 具有更大的寄存器数量(这减少了内存访问,在许多情况下也减少了缓存未命中),默认情况下隐含 SSE2 和其他新功能。但有些程序可能会遭受更多的缓存未命中,因为它们使用了大量指针访问,并且可能在 64 位操作系统上使用更大的类型(例如long在 Linux 上,尽管这在 Windows 上不会发生)

当您迁移到 64 位 VM 时,在 SPARC 上,在 64 位平台上运行的应用程序与在 32 位平台上运行的应用程序相比,性能差异约为 10-20%。在 AMD64 和 EM64T 平台上,此差异范围为 0-15%,具体取决于应用程序执行的指针访问量。

https://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_performance

答案4

空间就是表现。

小型缓存的性能优于大型缓存,并且固定大小的缓存中可以容纳比 64 位缓存更多的 32 位条目。

因此,在其他条件相同的情况下,32 位系统的性能优于 64 位系统。

相关内容