服务器之家:专注于服务器技术及软件下载分享
分类导航

服务器资讯|IT/互联网|云计算|区块链|软件资讯|操作系统|手机数码|百科知识|免费资源|头条新闻|

服务器之家 - 新闻资讯 - 操作系统 - 太激进了!上游 Linux 开发者反对“-O3”级别的内核优化

太激进了!上游 Linux 开发者反对“-O3”级别的内核优化

2020-05-16 21:28开源中国 操作系统

WireGuard 作者 Jason A. Donenfeld 上周向 Linux 内核提交了一个补丁,他建议在使用新发布的 GCC 10 编译器或更高的版本时,将内核的默认编译优化级别由 -O2 设置为-O3。 Jason 解释道,GCC 10 对-O2 进行了改进,以便在使用-flto 时缩短编译时

WireGuard 作者 Jason A. Donenfeld 上周向Linux 内核提交了一个补丁,他建议在使用新发布的 GCC 10 编译器或更高的版本时,将内核的默认编译优化级别由 -O2 设置为-O3。

Jason 解释道,GCC 10 对-O2 进行了改进,以便在使用-flto 时缩短编译时间,不过这似乎是以牺牲性能为代价来实现的。而现在的-O3 优化不存在和 10 年前同样的 bug,所以当 gcc >= 10 时,他提交的补丁会将 Linux 内核的编译优化默认设置为 -O3 级别。

太激进了!上游 Linux 开发者反对“-O3”级别的内核优化

对于这个提交,部分开发者表示有兴趣支持 -O3 优化级别的子集功能,甚至探索-Og 级别的优化,并努力缩短构建内核花费的时间,以便于测试。

不过总体看来,将内核默认编译优化级别设置为 -O3 的提案遭到了广泛的反对,因为这不一定会让内核变得更快,反而有可能会引入因优化而导致出现的特殊特性,甚至会产生让代码变得更慢的地方。

Linus Torvalds 也进行了表态,他不认为这是一个明智的想法,尤其是GCC -O3 级别的优化有时会导致出现问题。

GCC 开发者 Richard Biener 也写道,他不建议在内核中使用 -O3 级别的优化。他曾经提出使用 feedback/profile-driven 的数据让编译器做出更好优化决策的想法,但这会是一个非常庞大的任务,需要为 FDO 收集到足够的数据才能体会到方便之处。

因此,至少目前来看,Linux 内核似乎不会追求这种更具侵略性、更激进的编译器优化级别。

延伸 · 阅读

精彩推荐