IT资讯 LLVM Clang 11 预编译头新选项将带来大幅构建性能提升

vander · 2020-08-10 09:00:06 · 热度: 61

科技外媒 phoronix 跟踪了 LLVM/Clang 11 源码更新中的一个构建新特性,如果将 clang-cl 驱动用于 MSVC 或通过其它方式使用预编译头(Pre-Compiled Headers,PCH)特性,则可以使用新选项来显著加快构建时间

这一特性最早提交于去年 10 月,今年 4 月又被调整后 commit,并进入 LLVM 11 RC。主要原理是添加选项以实例化 PCH 中已经存在的模板。添加 -fpch-instantiate-templates,在生成预编译头时已经实例化模板,而不是在每次使用预编译头时都实例化。

默认情况下仅为 clang-cl 启用此功能。MSVC 通过使用空的 .cpp 文件进行编译来创建 PCH ,这意味着在构建 PCH 时会实例化模板,因此 .h 需要自包含,否则可能导致问题:test/PCH/pch-instantiate-templates-forward-decl.cpp 无法编译。

提出这一改进的开发者测试了多次,表示这可以节省 20-30% 的构建时间。

LLVM Clang 11 预编译头新选项将带来大幅构建性能提升

具体可以查看:https://reviews.llvm.org/rGa45f713c673001abb4fe0612b909c698073eb356。另外,LLVM 11.0/Clang 11.0 预计下个月发布。

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册