LLVM的ClangC/C++编译器传统上以提供了比GCC更快的编译速率而闻名,不过在GCC的近来几个版本中,其编译速率有所提高。
但是在个别领域因为LLVM/Clang进一步优化工作的缺位和其他工作加入到不断下降的代码库中linux apache 虚拟主机,造成其速率有所减弱,因而就目前而言,GCC在编译Linux内核方面的速率比LLVM/Clang更快。
与会者在上周LinuxPlumbers2020峰会上发表的讲演介绍了使用LLVM/Clang编译Linux内核的时间。
开发者NathanChancellor和NathanHuckleberry发觉linux内核模块编译,对于64位ARM和x86_64构架来说,虽然LLVM在启用LTO和PGO的情况下进行编译linux内核模块编译,“GCC编译速率仍然大胜LLVM”。
只有当LLVM在编译时启用PGO来为32位ARM进行完善的情况下,其编译Linux内核的速率才比GCC快。
从历史上看,这个数据是超乎预料的,但考虑到最新的编译器及其在编译器性能方面激烈而友好的竞争,虽然又不是过分令人倍感惊讶的事情。不过这些被赶超的案例也让LLVM的开发者们开始探求未来的改进途径。
比如,冗余的内联内联汇编(InlineAssembly)句子消耗了大概13%的建立过程,而此问题早已在Clang11中得到解决。另外linux视频教程,还有一些须要跟踪宏参数源位置的高开支估算。
随着上游LLVM/Clang编译器为x86_64和AArch64(以及近来的i686)建立上游内核编译器,LLVM开发者将更密切关注未来的建立时间。
推荐阅读:
VS Code · 编程开发 · 业界资讯