diff --git a/src/benchmark/mod.rs b/src/benchmark/mod.rs
index e3534a7bc..f06f814d0 100644
--- a/src/benchmark/mod.rs
+++ b/src/benchmark/mod.rs
@@ -9,7 +9,7 @@ use std::cmp;
use crate::benchmark::executor::BenchmarkIteration;
use crate::command::Command;
use crate::options::{
- CmdFailureAction, CommandOutputPolicy, ExecutorKind, Options, OutputStyleOption,
+ CmdFailureAction, CommandOutputPolicy, ExecutorKind, Options, OutputStyleOption, WarmupOption,
};
use crate::outlier_detection::{modified_zscores, OUTLIER_THRESHOLD};
use crate::output::format::{format_duration, format_duration_unit};
@@ -53,6 +53,142 @@ impl<'a> Benchmark<'a> {
}
}
+ /// Run warmup iterations before the actual benchmark.
+ fn perform_warmup_runs(
+ &self,
+ run_preparation_command: &impl Fn() -> Result