帖子详情 您在阅读帖子内容并对帖子进行投票之后,可发表回复。

GCC的Linux内核编译速度比LLVM编译更快

分享到: 分享到QQ  分享到Twitter
作者:BigLoser    访问次数:81    投票总数:0   
创建时间:2020-09-06 19:15:34   

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 开发者将更密切关注未来的构建时间。

 

详细信息查看此幻灯片,如果对评估不同 CPU 内核编译时间的水平感兴趣,查看 OpenBenchmarking.org 结果概述页面

帖子投票

名称 是否有价值
Linux群组的头像

Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

投票统计

是否原创:0%

0% Complete (success)

是否有价值:0%

0% Complete

是否有素质:0%

0% Complete (warning)

是否合法:0%

0% Complete