GCC 编译 Linux 内核速度更快

电工技术 4年前 (2022) aysz01
0

众所周知,LLVM的Clang C / C ++编译器比GCC提供更快的编译速度。 但是,新版本的GCC中的编译速度有所提高。

并且在某些领域由于 LLVM/Clang 进一步优化工作的缺失和其他工作加入到不断增长的代码库中,导致其速度有所减慢,因此就目前而言,GCC 在编译 Linux 内核方面的速度比 LLVM/Clang 更快。

与会者在上周 Linux Plumbers 2020 大会上发表的演讲介绍了使用 LLVM/Clang 编译 Linux 内核的时间。

开发者 Nathan Chancellor 和 Nathan Huckleberry 发现,对于 64 位 ARM 和 x86_64 架构来说,即便 LLVM 在启用 LTO 和 PGO 的情况下进行编译,“GCC 编译速度始终击败 LLVM”。

只有当 LLVM 在编译时启用 PGO 来为 32 位 ARM 进行构建的情况下,其编译 Linux 内核的速度才比 GCC 快。

从历史上看,这个数据是出乎意料的,但考虑到最新的编译器及其在编译器性能方面激烈而友好的竞争,似乎又不是过于令人感到震惊的事情。

不过这种被超越的案例也让 LLVM 的开发者们开始探索未来的改进途径。例如,冗余的内联内联汇编(Inline Assembly)语句消耗了大约 13% 的构建过程,而此问题已经在 Clang 11 中得到解决。

另外,还有一些需要跟踪宏参数源位置的高开销计算。

随着上游 LLVM/Clang 编译器为 x86_64 和 AArch64(以及最近的 i686)构建上游内核编译器,LLVM 开发者将更密切关注未来的构建时间。

版权声明:aysz01 发表于 2022-09-05 4:01:42。
转载请注明:GCC 编译 Linux 内核速度更快 | 鳌游电工

暂无评论

暂无评论...