hdrhist

Struct HDRHist

Source
pub struct HDRHist { /* private fields */ }
Expand description

An hdr histogram that collects u64 sample with 5 bit precision.

Implementations§

Source§

impl HDRHist

Source

pub fn new() -> Self

Construct an empty hdr histogram.

Source

pub fn add_value(&mut self, value: u64)

Add a sample to the histogram.

This is guaranteed to be constant time and never re-allocates.

Source

pub fn combined(self, other: Self) -> Self

Combine this histogram with another. This doesn’t normalize, and only adds the per-bucket counts. Only use it for histograms that have captured a comparable number of samples.

Source

pub fn ccdf<'a>(&'a self) -> impl Iterator<Item = (u64, f64, u64)> + 'a

Output the complementary cumulative distribution function (ccdf) of the samples

Returns an iterator over increasing sample values such that, for every triple (value, prob, count), prob is the ratio of samples >= value, and count is the number of samples >= the current value and < the next value.

Source

pub fn ccdf_upper_bound<'a>(&'a self) -> impl Iterator<Item = (u64, f64)> + 'a

Outputs an upper bound of the complementary cumulative distribution function (ccdf) of the samples.

You can use these points to plot with linear interpolation and never report intermediate sample values that underestimate quantiles. In other words, all the actual quantile values will be below the reported curve.

Source

pub fn ccdf_lower_bound<'a>(&'a self) -> impl Iterator<Item = (u64, f64)> + 'a

Outputs an upper bound of the complementary cumulative distribution function (ccdf) of the samples.

You can use these points to plot with linear interpolation and never report intermediate sample values that overestimate quantiles. In other words, all the actual quantile values will be above the reported curve.

Source

pub fn quantiles<'a>( &'a self, quantiles: impl Iterator<Item = f64> + 'a, ) -> impl Iterator<Item = (f64, u64, u64)> + 'a

Output estimated quantiles as (quantile, lower_bound, upper_bound) pairs

Each quantile’s value is somewhere >= lower_bound and < upper_bound

Source

pub fn summary<'a>(&'a self) -> impl Iterator<Item = (f64, u64, u64)> + 'a

Output a summary of estimated quantiles

Source

pub fn summary_string(&self) -> String

Output a text summary of estimated quantiles

Trait Implementations§

Source§

impl Clone for HDRHist

Source§

fn clone(&self) -> HDRHist

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.