gcc 参数_出乎意料?GCC 编译 Linux 内核速度比 LLVM 更快!

d807036d073d6df02c19d594d4ab2fea.png
必备Linux命令和C语言基础_C语言_嵌入式开发工程师-创客学院​www.makeru.com.cn
249e25bca8fbc4e5e5b950699f42ae89.png

LLVM 的 Clang C/C++ 编译器传统上以提供了比 GCC 更快的编译速度而著称,不过在 GCC 的最近几个版本中,其编译速度有所提升。必备Linux命令和C语言基础_C语言_嵌入式开发工程师-创客学院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 快。

ed7e46ff09478a1853eeefbeece31edb.png

4cc3cb212346370585ffc15e666d0ad0.png

fada796139607aaa0e4ab7485b2f781f.png

从历史上看,这个数据是出乎意料的,但考虑到最新的编译器及其在编译器性能方面激烈而友好的竞争,似乎又不是过于令人感到震惊的事情。不过这种被超越的案例也让 LLVM 的开发者们开始探索未来的改进途径。

例如,冗余的内联内联汇编(Inline Assembly)语句消耗了大约 13% 的构建过程,而此问题已经在 Clang 11 中得到解决。另外,还有一些需要跟踪宏参数源位置的高开销计算。

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

c2ae2b9ee284b41a5c54103391915763.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值