我用 cargo bench
对我的 Rust 项目进行了基准测试,并在结果上看到了很多数字……它们是什么意思?
2 tests
test bench_few_core ... bench: 26,249,920 ns/iter (+/- 2,836,381)
test bench_one_core ... bench: 6,087,923 ns/iter (+/- 752,064)
例如对于 test bench_few_core
,我看到:
- 数字 1 = 26
- 2 = 249
- 数字 3 = 920
- 数字 4 = 2
- 5 = 836
- 数字 6 = 381
它们都是什么意思?
我认为每个测试应该有 2 个数字:数学期望值(或均值)和标准差。
最佳答案
数字是 median以及最大值和最小值之间的差异,使用以美国为中心的数字样式(使用逗号作为千位分隔符)表示。
以你的例子为例:
- 中位数:26249920 ns/iter
- 最大-最小值:2836381 ns/iter
let median = bs.ns_iter_summ.median as usize;
let deviation = (bs.ns_iter_summ.max - bs.ns_iter_summ.min) as usize;
write!(
output,
"{:>11} ns/iter (+/- {})",
fmt_thousands_sep(median, ','),
fmt_thousands_sep(deviation, ',')
)
注意这里有各种统计工作underlying the benchmarking ,最明显的事实是样本的上下 5% 被截断以减少异常值的影响。
关于testing - 如何解释 `cargo bench` 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323487/