pub struct PerformanceRegressionDetector { /* private fields */ }Expand description
Performance regression detection
Implementations§
Source§impl PerformanceRegressionDetector
impl PerformanceRegressionDetector
pub fn new() -> Result<Self>
pub fn new_empty() -> Self
Sourcepub fn check_regression(
&mut self,
kernel_name: &str,
profile_data: &KernelProfileData,
) -> Result<()>
pub fn check_regression( &mut self, kernel_name: &str, profile_data: &KernelProfileData, ) -> Result<()>
Record one real execution-time measurement and, once enough history
exists, either establish this kernel’s baseline or test the recent
window against it – pushing a real RegressionAlert only when
the Welch’s t-test finds a statistically significant slowdown
beyond alert_thresholds.minor_threshold. Never a no-op that
silently discards profile_data.
Sourcepub fn get_status(&self, kernel_name: &str) -> Result<Option<RegressionStatus>>
pub fn get_status(&self, kernel_name: &str) -> Result<Option<RegressionStatus>>
Real regression status for kernel_name, freshly recomputed from
its execution-time history against its established baseline.
Returns Ok(None) – never a fabricated “stable” status –
whenever there is not yet a baseline, or not yet enough recent
samples in the detection window to compare against it. A pure
query: unlike Self::check_regression, it never appends to
regression_alerts.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PerformanceRegressionDetector
impl RefUnwindSafe for PerformanceRegressionDetector
impl Send for PerformanceRegressionDetector
impl Sync for PerformanceRegressionDetector
impl Unpin for PerformanceRegressionDetector
impl UnsafeUnpin for PerformanceRegressionDetector
impl UnwindSafe for PerformanceRegressionDetector
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
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> ⓘ
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> ⓘ
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.