LLVM 10 影响 Rust 性能,生成更多指令导致编译时间变长

2020-05-11 10:39:07

来源:开源中国

外媒 Phoronix 在进行基准测试后发现,与 LLVM/Clang 9.0 相比,Clang 10.0 的基准测试结果整体上不错,至少没有出现明显的倒退。但是,当 Rust 将其编译器基础迁移到 LLVM 10.0 后,对于 Rust 来说,情况似乎不太一样。

红帽公司的 Rust 开发者Josh Stone 在上周五发表邮件称,在编译相同的代码库时,LLVM 10.0 编译其 Git master 主分支代码不仅花费了更长的构建时间,而且生成了更多的指令。

Josh 和其他开发者发现,与使用 LLVM 9.0 相比,LLVM 10.0 会导致 Rust 编译时间变慢 7~8%。在邮件列表的一个帖子中,他指出从 LLVM 9.x 到 10.x 在测试代码库上生成的指令大约多了 5.3%,而从 LLVM 10.x 到 LLVM 11 Git master 分支,此项数据又增加了 4.8%。

这个问题目前尚未被解决,不过多个 Rust 开发者在 LLVM 10 中重现了同样的行为并得出相似的结果,并且从数据上看,问题对性能的影响比较大,希望不久后可以解决。

关键词: LLVM 10 Rust