此commit (issue #19145),在运行基准测试时删除了--save-metrics
选项。有没有办法在类似于--save-metrics
的正式中生成基准运行的JSON?
答案 0 :(得分:0)
默认测试工具libtest
(实际上是运行测试的工具)具有CLI参数--format
。它接受值pretty
(默认值),terse
和json
。但是,JSON输出仍然不稳定(从Rust 1.37开始),因此需要每晚进行编译。要启用此不稳定功能,您还需要标志-Z unstable-options
。结合一切:
cargo bench -- --format=json -Z unstable-options
这将输出如下内容:
Finished release [optimized] target(s) in 0.02s
Running target/release/deps/foo-177d129f966b1f75
{ "type": "suite", "event": "started", "test_count": 1 }
{ "type": "test", "event": "started", "name": "bench_foo" }
{ "type": "bench", "name": "bench_foo", "median": 10138124, "deviation": 165468 }
{ "type": "suite", "event": "ok", "passed": 0, "failed": 0, "allowed_fail": 0, "ignored": 0, "measured": 1, "filtered_out": 0 }
这可能与原始--save-metrics
标志不同,但至少是一样。
还值得指出的是,某些外部基准测试框架(例如Criterion)将始终将原始数据另存为JSON。因此,您可能要考虑使用此方法自己进行统计分析。