Store typed Measurements in BenchmarkResult

This commit is contained in:
David Peter committed 2026-10-05 12:46:10 +02:00
1 parent 05de077d8e
commit b23372c5e2
7 files changed
+432 -257

No files matched your search

+7 -7
View File
@@ -1,7 +1,7 @@
use crate::benchmark::relative_speed::BenchmarkResultWithRelativeSpeed;
use crate::benchmark::{benchmark_result::BenchmarkResult, relative_speed};
use crate::options::SortOrder;
use crate::quantity::{second, FormatQuantity, IsUnit, Time, TimeUnit};
use crate::quantity::{FormatQuantity, IsUnit, TimeUnit};
use super::Exporter;
use anyhow::Result;
@@ -50,14 +50,14 @@ pub trait MarkupExporter {
let cmd_str = measurement
.command_with_unused_parameters
.replace('|', "\\|");
let mean_str = Time::new::<second>(measurement.mean).format_value(unit);
let stddev_str = if let Some(stddev) = measurement.stddev {
format!(" ± {}", Time::new::<second>(stddev).format_value(unit))
let mean_str = measurement.mean_wall_clock_time().format_value(unit);
let stddev_str = if let Some(stddev) = measurement.measurements.stddev() {
format!(" ± {}", stddev.format_value(unit))
} else {
"".into()
};
let min_str = Time::new::<second>(measurement.min).format_value(unit);
let max_str = Time::new::<second>(measurement.max).format_value(unit);
let min_str = measurement.measurements.min().format_value(unit);
let max_str = measurement.measurements.max().format_value(unit);
let rel_str = format!("{:.2}", entry.relative_speed);
let rel_stddev_str = if entry.is_reference {
"".into()
@@ -101,7 +101,7 @@ pub trait MarkupExporter {
fn determine_unit_from_results(results: &[BenchmarkResult]) -> TimeUnit {
if let Some(first_result) = results.first() {
// Use the first BenchmarkResult entry to determine the unit for all entries.
Time::new::<second>(first_result.mean).suitable_unit()
first_result.mean_wall_clock_time().suitable_unit()
} else {
// Default to `Second`.
TimeUnit::Second