pub struct PerformanceDistribution {
pub mean_secs: f64,
pub std_dev_secs: f64,
pub percentiles: HashMap<u8, f64>,
pub outlier_threshold_secs: f64,
pub sample_count: usize,
}Expand description
Summary statistics of a kernel’s baseline execution-time samples.
Canonical unit: seconds, as f64. These used to be std::time::Duration,
which quantizes to whole nanoseconds – so the same measurements expressed
on a different time scale produced different published statistics, and a
microsecond-scale kernel’s standard deviation could round-trip to 0 ns,
driving the Welch t-statistic to infinity and its p-value to exactly 0.
Duration is still used for the human-facing latency fields on
BaselineProfile and RegressionAlert; nothing that feeds the
statistics goes through it any more.
Fields§
§mean_secs: f64Arithmetic mean of the baseline samples, in seconds.
std_dev_secs: f64Sample standard deviation of the baseline samples, in seconds.
percentiles: HashMap<u8, f64>50th, 90th, 95th and 99th percentiles of the baseline samples, in seconds.
outlier_threshold_secs: f64mean + 3 * std_dev, in seconds.
sample_count: usizeNumber of real samples the distribution was estimated from –
required for the Welch’s t-test comparison in
PerformanceRegressionDetector::check_regression /
PerformanceRegressionDetector::get_status.
Trait Implementations§
Source§impl Clone for PerformanceDistribution
impl Clone for PerformanceDistribution
Source§fn clone(&self) -> PerformanceDistribution
fn clone(&self) -> PerformanceDistribution
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PerformanceDistribution
impl Debug for PerformanceDistribution
Source§impl<'de> Deserialize<'de> for PerformanceDistribution
impl<'de> Deserialize<'de> for PerformanceDistribution
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for PerformanceDistribution
impl RefUnwindSafe for PerformanceDistribution
impl Send for PerformanceDistribution
impl Sync for PerformanceDistribution
impl Unpin for PerformanceDistribution
impl UnsafeUnpin for PerformanceDistribution
impl UnwindSafe for PerformanceDistribution
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> ConfigSerializable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
Source§fn save_to_file(&self, path: &Path) -> Result<(), TrustformersError>
fn save_to_file(&self, path: &Path) -> Result<(), TrustformersError>
Source§fn load_from_file(path: &Path) -> Result<Self, TrustformersError>where
Self: Sized,
fn load_from_file(path: &Path) -> Result<Self, TrustformersError>where
Self: Sized,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.