Phoronix 发布了9 个操作系统的比较。最快的三个是:
- 清除 Linux 32310
- CentOS Stream(而滚动 Manjaro 是倒数第二个)
- Fedora 工作站 31
这种差异的基本原因是什么,尤其是滚动的 CentOS 和 Manjaro 之间?他们运送不同的内核吗?CentOS 软件包是否使用更多优化标志?他们是否默认使用不同的 IO 队列或调控器?
Phoronix 发布了9 个操作系统的比较。最快的三个是:
这种差异的基本原因是什么,尤其是滚动的 CentOS 和 Manjaro 之间?他们运送不同的内核吗?CentOS 软件包是否使用更多优化标志?他们是否默认使用不同的 IO 队列或调控器?
以下是我能想到的因素:
对于 Clear Linux,他们引以为豪的是:
使用 CPU 可以提供的完整指令集会产生重大影响。
作为比较,Arch Linux(和 Manjaro)提供了一个内核、库和使用 GCC 编译的通用 64 位 x86 CPU(
-march=x86-64 -mtune=generic
)的可执行文件。这提供了良好的性能,但不如专门为其运行的 CPU 编译的可执行文件好。在 Arch Linux 上使用elfx86exts工具
/usr/bin/ls
显示至少需要哪些 CPU 指令:我没有机会在 Clear Linux 上尝试相同的操作,但我认为会出现更长的指令列表。
总之,修补内核和调整内核配置会产生良好的效果,但最重要的是,支持可用的 CPU 指令会产生很大的不同。
手动调整编译标志的性能提升被高估了。而且成本不低(如果您为您的机器编译了一种配置,我为我的机器编写了一个不同的配置,您偶然发现的任何错误都将是您的唯一,我很可能会有自己的私人设置)。
拿一份 Bentley 的“编写高效程序”(遗憾的是早已绝版)或他的“编程珍珠”(第 2 版)。真正的性能提升要难得多,而且要大几个数量级。