You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust Criterion无法生成HTML报告及基准测试图表问题求助

Rust Criterion基准测试图表生成问题解决

核心问题排查与解决步骤

  1. 启用Criterion的图表生成特性
    Criterion默认不包含图表生成功能,必须在Cargo.toml中显式启用plot特性:
[dev-dependencies]
criterion = { version = "0.5", features = ["plot"] }

基准测试属于开发阶段任务,建议将依赖放在dev-dependencies下。

  1. 确认Gnuplot可被Criterion调用
    虽然已安装Gnuplot,需确保它在系统环境变量PATH中:
  • 终端执行gnuplot --version,能正常输出版本信息则路径配置正确;
  • 若提示命令未找到,需手动将Gnuplot的bin目录添加到系统PATH(Windows用户需重点检查)。
  1. 使用正确命令运行基准测试
    不要用cargo test运行基准测试,它会跳过基准测试执行。必须执行:
cargo bench

运行完成后,报告和图表会自动生成到target/criterion/from_elem/report目录,打开其中的index.html即可查看带图表的测试结果。

  1. PlotConfiguration的正确用法
    你添加的PlotConfiguration::default()与默认配置完全一致,因此不会产生变化。若需自定义图表样式(比如对数坐标轴、修改标题),可参考以下代码:
use criterion::AxisScale;

// ...

let mut plot_config = PlotConfiguration::default();
// 将Y轴改为对数刻度,更适合展示随输入规模变化的性能趋势
plot_config.y_axis.scale = AxisScale::Logarithmic;
group.plot_config(plot_config);

修正后的完整代码示例

use std::iter;
use criterion::{BenchmarkId, criterion_group, criterion_main, PlotConfiguration, AxisScale};
use criterion::Criterion;
use criterion::Throughput;

fn from_elem(c: &mut Criterion) {
    static KB: usize = 1024;

    let mut plot_config = PlotConfiguration::default();
    plot_config.y_axis.scale = AxisScale::Logarithmic;
    let mut group = c.benchmark_group("from_elem");
    group.plot_config(plot_config);

    for size in [KB, 2 * KB, 4 * KB, 8 * KB, 16 * KB].iter() {
        group.throughput(Throughput::Bytes(*size as u64));
        group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| {
            b.iter(|| iter::repeat(0u8).take(size).collect::<Vec<_>>());
        });
    }
    group.finish();
}

criterion_group!(benches, from_elem);
criterion_main!(benches);

验证结果

运行cargo bench后,进入target/criterion/from_elem/report目录,打开index.html即可查看随输入规模变化的吞吐量、执行时间等图表。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:55:41