pub struct RegressionDetector { /* private fields */ }Expand description
Compares profiling measurements against a stored baseline and emits alerts.
Implementations§
Source§impl RegressionDetector
impl RegressionDetector
pub fn new(config: RegressionConfig) -> Self
Sourcepub fn detect(
&self,
current: &[PerfMeasurement],
baseline: &PerfBaseline,
) -> Vec<RegressionAlert>
pub fn detect( &self, current: &[PerfMeasurement], baseline: &PerfBaseline, ) -> Vec<RegressionAlert>
Detect regressions by comparing current measurements to the baseline.
For each named component that appears in both sets the detector computes:
- mean current value vs. baseline mean
- optional z-score significance check (when baseline has ≥ 2 points)
Returns every alert whose absolute regression percentage exceeds
config.min_regression_pct.
Sourcepub fn report(&self, alerts: &[RegressionAlert]) -> String
pub fn report(&self, alerts: &[RegressionAlert]) -> String
Render alerts as a human-readable text report.
Sourcepub fn save_baseline(&self, baseline: &PerfBaseline, path: &Path) -> Result<()>
pub fn save_baseline(&self, baseline: &PerfBaseline, path: &Path) -> Result<()>
Persist a PerfBaseline as JSON to path.
Sourcepub fn load_baseline(&self, path: &Path) -> Result<PerfBaseline>
pub fn load_baseline(&self, path: &Path) -> Result<PerfBaseline>
Load a PerfBaseline from a JSON file.
Sourcepub fn create_baseline(
measurements: Vec<PerfMeasurement>,
description: &str,
) -> PerfBaseline
pub fn create_baseline( measurements: Vec<PerfMeasurement>, description: &str, ) -> PerfBaseline
Build a new PerfBaseline from a set of measurements.
Sourcepub fn recommendations(&self, alerts: &[RegressionAlert]) -> Vec<String>
pub fn recommendations(&self, alerts: &[RegressionAlert]) -> Vec<String>
Generate actionable recommendations for a list of alerts.
Auto Trait Implementations§
impl Freeze for RegressionDetector
impl RefUnwindSafe for RegressionDetector
impl Send for RegressionDetector
impl Sync for RegressionDetector
impl Unpin for RegressionDetector
impl UnsafeUnpin for RegressionDetector
impl UnwindSafe for RegressionDetector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.