编译下载的 Linux 内核(例如 3.2)是否会使该特定机器上的操作系统(例如 ubuntu)运行得更快?
答案1
一般来说,不是的。
然而,也有一些例外。例如liquorix 内核或者Ubuntu 内核版本这些一般都是性能调优,可以起到一定的作用(服务器内核对于服务器来说速度更快,不会提高桌面性能)。
使用 Ubuntu,如果您运行的是适当的内核版本,那么就可以开始了。
笔记:Liquorix内核也有一些补丁(除了性能调整)。
另一个例外是你有一些不寻常的硬件。
但在绝大多数情况下,性能并不是编译内核的“标准”原因。
看:
答案2
最准确的答案是,正如 bodhi.zazen 所说,通常不会,但也有少数例外。大多数例外与硬件有关,但有些只是配置问题。我的答案的理由如下。
上个月我在两台机器上编译了 26 个内核,尝试进行性能调整。我发现:
- 将 .config 中的 cpu 类型更改为本机架构并删除支持其他架构的选项,在基准测试中将文件 I/O 吞吐量提高了 10% 以上(足以让我“感受到改进”),并减少了在我的 1.8GHz (K8) Mobile Sempron 512MB RAM 笔记本电脑上运行 Xubuntu 12.04 -32bit 的 XFCE 中用户输入后的延迟。同样的更改对我在 Ubuntu 12.04 64 位上运行的 1.73GHz Core2 Duo 2GB RAM 笔记本电脑没有可量化或可感知的影响,但确实导致一个以前稳定的应用程序变得容易崩溃。
- 将 .config 中的 HZ 更改为 1000 可显著提高两个系统在高 CPU 负载下对用户输入的响应能力。它还使 X 中的窗口焦点在所有条件下都能瞬时更改。
- BFS 补丁将两个系统的电池寿命延长了几分钟。刚好够衡量和持续,但还不足以产生太大影响。基准测试显示,性能变化没有统计学上的显著变化,但两个系统“感觉”都更快了。我怀疑这与调度优先级对这些特定机器上的典型工作负载更有利有关。
- 尝试的所有其他 .config 组合都导致两个系统的性能下降。
我花了大量时间来编译和测试不同的配置。尽管如此,在尝试的 26 个内核中,只有 5 个产生了理想的结果。7 个内核甚至无法运行(无法启动或无法启动 X)。我最近从存储库安装了 Liquorix 内核,并获得了上述所有改进,此外,我在 Core2 系统上通过 WINE 玩的两个 Windows 游戏的帧速率都提高了大约 50%。这只花了几分钟,没有出现任何问题。
因为我编译了自己的内核,我的操作系统就更好了吗?嗯,确实有一点。直到我发现运行速度较慢/出现故障的东西,因为我在测试期间没有发现它。我的操作系统更快了吗?没有。
答案3
根据我的经验,是的。但好处主要来自于消除不必要的功能,并选择一些其他功能,例如您的处理器类型。此外,还要使其具有超低延迟以供桌面使用。我已经编译内核多年了,对我来说,差异总是显而易见的。但还有其他好处。启动时间也得到了改善。
然而,选择您需要的选项非常耗时。
答案4
我不知道内核怎么样,但一般来说,从源代码编译应用程序通常会使它们运行得更快(我通常使用 CGAL 之类的开发库或 ParaView 之类的应用程序)。当然,编译过程针对架构等进行了优化。
但是我不认为编译内核会使其运行速度加快到对性能产生明显影响的程度。在我看来,这只能在性能计数器中看到。