Как мне интерпретировать вывод `грузовой скамьи`?
Я сравнил свой проект Rust с cargo bench
и увидеть много цифр на результатах... Что они значат?
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 числа на тест: математическое ожидание (или среднее значение) и стандартное отклонение.
2 ответа
Ваш пример показывает два числа, которые вы ожидаете для теста: медиана и общее отклонение (т.е. max-min
) в наносекундах за итерацию.
Обратите внимание, что для больших чисел обычной практикой в английском языке США является написание цифр группами по 3, разделенными запятыми. Например, 26249920 часто пишется 26,249,920.
Числа представляют собой среднее значение и разницу между максимальным и минимальным значениями, выраженные с использованием стилей чисел, ориентированных на США (в качестве разделителя тысяч используется запятая).
Для вашего примера:
- средний: 26249920 нс / ит
- Макс-мин: 2836381 нс / ит
let median = bs.ns_iter_summ.median as usize;
let deviation = (bs.ns_iter_summ.max - bs.ns_iter_summ.min) as usize;
output.write_fmt(format_args!("{:>11} ns/iter (+/- {})",
fmt_thousands_sep(median, ','),
fmt_thousands_sep(deviation, ',')))
Обратите внимание, что в основе сравнительного анализа лежит различная статистическая работа, наиболее очевидно тот факт, что верхние и нижние 5% выборок усекаются, чтобы уменьшить влияние выбросов.