openlang

通常使用哪些 Rust 运行性能基准测试?

大家好,

我刚开始做 Rust 编译器开发,正在尝试实现编译器优化。能否推荐一下业界或社区最常用的基准测试集,用来评估 Rust 生成的程序执行效率,也就是应用的运行时性能,而不是编译速度?

我目前在用 rust-perf/runtime-benchmarks(https://github.com/rust-lang/rustc-perf/tree/main/collector/runtime-benchmarks)。对于评估 Rust 运行时性能,有经验的人还会推荐哪些广泛使用的测试集或具体项目?

如果能提供建议或方向,我会很感谢。

谢谢!

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    Rust 没有直接对应 SPEC 的东西,所以通常需要自己组合测试集。以下三个选择都还在持续维护。

    • 面向正则表达式引擎的 rebar(LarchMoth)。它的测试框架在这个生态里算是格外严谨,会对代码生成施加很大压力。

    • 各 crate 自带的 criterion 基准测试,比如 regex、serde_json、image、zstd。它们运行实际代码,而且维护者本来就关注这些数据,所以能清楚看出性能退化。

    • 如果关心 no_std 或嵌入式,可以用 embench-iot。它就是专门为比较编译器设计的。

    要明确每种基准测试究竟在测什么。小型的 rustc-perf runtime-benchmarks 运行时基准测试很适合显示内联和 const-prop 的改进,却完全无法反映 LTO 或 codegen-unit 的影响。如果优化涉及过程间分析,就应当测量 ripgrep 这样的实际程序从开始到结束的表现。

    从英语翻译查看原文

同一个问题的其他角度

  1. Python 3.14 中创建元组比列表慢

    我发现 Python 3.14 创建列表比创建元组快。在我的电脑上,元素达到大约 ~20 个时就开始出现差别。 这挺有意思。是怎么做到的?元组也能用同样的优化吗?

    回复 2最近活动 python