Switch to unit-safe quantities

This commit is contained in:
David Peter authored and David Peter committed 2026-10-05 15:58:56 +02:00
1 parent 914d5cbc59
commit f9aa299c0f
15 files changed
+399 -287

No files matched your search

+5 -5
View File
@@ -12,6 +12,7 @@ use std::time::Instant;
use crate::benchmark::benchmark_result::Parameter;
use crate::benchmark::executor::BenchmarkIteration;
use crate::benchmark::measurement::{Measurement, Measurements};
use crate::benchmark::quantity::{MilliSecond, Second};
use crate::command::Command;
use crate::options::{
CmdFailureAction, CommandOutputPolicy, ExecutorKind, Options, OutputStyleOption,
@@ -26,7 +27,6 @@ use crate::output::warnings::{OutlierWarningOptions, Warnings};
use crate::parameter::ParameterNameAndValue;
use crate::quantity::{byte, const_time_from_seconds, ratio, second, FormatQuantity, Time, Zero};
use crate::util::exit_code::extract_exit_code;
use crate::util::units::Second;
use benchmark_result::BenchmarkResult;
use measurement::{Measurement, Measurements};
@@ -36,7 +36,7 @@ use colored::*;
use self::executor::Executor;
/// Threshold for warning about fast execution time
pub const MIN_EXECUTION_TIME: Time = const_time_from_seconds(5e-3);
pub const MIN_EXECUTION_TIME: MilliSecond = MilliSecond::new(5.);
pub struct Benchmark<'a> {
number: usize,
@@ -265,7 +265,7 @@ impl<'a> Benchmark<'a> {
};
let preparation_result = run_preparation_command()?;
let preparation_overhead = preparation_result.map_or(0.0, |res| {
let preparation_overhead = preparation_result.map_or(Second::zero(), |res| {
res.time_wall_clock + self.executor.time_overhead()
});
@@ -294,7 +294,7 @@ impl<'a> Benchmark<'a> {
}
let conclusion_result = run_conclusion_command()?;
let conclusion_overhead = conclusion_result.map_or(0.0, |res| {
let conclusion_overhead = conclusion_result.map_or(Second::zero(), |res| {
res.time_wall_clock + self.executor.time_overhead()
});
@@ -434,7 +434,7 @@ impl<'a> Benchmark<'a> {
&& measurements
.wall_clock_times()
.iter()
.any(|&t| t < MIN_EXECUTION_TIME)
.any(|&t| t < MIN_EXECUTION_TIME.convert_to::<Second>())
{
warnings.push(Warnings::FastExecutionTime);
}