谷歌工程师提议将 Propeller 工具集成至 LLVM 核心代码库。Propeller 是一款基于剖面引导的优化器,通过重新优化程序各组件的布局结构及关联关系,实现大型应用的性能提速。
Propeller 工具已历经数年研发,基于 LLVM 构建,可支持对整个代码库开展全程序优化。谷歌在编译 Linux 内核时,已将 Propeller 与 AutoFDO 搭配部署,成功实现 5% 至 10% 的性能提升。
谷歌编译器团队的一名工程师已在 LLVM Discourse 论坛发布该提案。提案文件明确,Propeller 通过对函数及基本块进行精准布局,实现应用性能提升。LLVM 内部已具备支持 Propeller 运行的部分必要基础架构,包括 Clang 编译器与 LLD 链接器中的相关支持模块;但生成剖面文件的核心工具,目前仍存放在谷歌单独维护的代码仓库中。
当前使用 Propeller 需对接该外部代码仓库,给开发流程增加了额外繁琐操作。将该工具集成至 LLVM 主线代码库后,其可随标准工具集一同分发,大幅降低开发者的适配门槛。提案作者表示,Propeller 采用基于重链接的实现方案,在分布式构建与增量构建场景中具备出色的扩展性,该工具定位为 BOLT 等二进制重写框架的替代方案。
分享到:








发表评论
您还未登录,请先登录。
登录