pub struct MeasurementSettings {
    pub filter_outliers: bool,
    pub samples_per_haystack: usize,
    pub min_iterations_per_sample: usize,
    pub max_iterations_per_sample: usize,
    pub sampler_type: SamplerType,
    pub cache_firewall: Option<usize>,
    pub yield_before_sample: bool,
}
Expand description

Describes basic settings for the benchmarking process

This structure is passed to cli::run().

Should be created only with overriding needed properties, like so:

use tango_bench::MeasurementSettings;

let settings = MeasurementSettings {
    min_iterations_per_sample: 1000,
    ..Default::default()
};

Fields§

§filter_outliers: bool§samples_per_haystack: usize

The number of samples per one generated haystack

§min_iterations_per_sample: usize

Minimum number of iterations in a sample for each of 2 tested functions

§max_iterations_per_sample: usize

The number of iterations in a sample for each of 2 tested functions

§sampler_type: SamplerType§cache_firewall: Option<usize>

Size of a CPU cache firewall in KBytes

If set, the scheduler will perform a dummy data read between samples generation to spoil the CPU cache

Cache firewall is a way to reduce the impact of the CPU cache on the benchmarking process. It tries to minimize discrepancies in performance between two algorithms due to the CPU cache state.

§yield_before_sample: bool

If true, scheduler will perform a yield of control back to the OS before taking each sample

Yielding control to the OS is a way to reduce the impact of OS scheduler on the benchmarking process.

Trait Implementations§

source§

impl Clone for MeasurementSettings

source§

fn clone(&self) -> MeasurementSettings

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
source§

impl Debug for MeasurementSettings

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MeasurementSettings

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Copy for MeasurementSettings

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> Colorize for T
where T: ?Sized,

source§

fn into_style(self) -> StyledValue<Self>
where Self: Sized,

Convert a value to a StyledValue
source§

fn style(&self) -> StyledValue<&Self>

Convert a value to a StyledValue
source§

fn into_style_with<F, B, U>( self, style: Style<F, B, U> ) -> StyledValue<Self, F, B, U>
where Self: Sized,

Convert a value to a StyledValue and applies the given style
source§

fn style_with<F, B, U>( &self, style: Style<F, B, U> ) -> StyledValue<&Self, F, B, U>

Convert a value to a StyledValue and applies the given style
source§

fn fg<C>(&self, color: C) -> StyledValue<&Self, C>

Changes the foreground color
source§

fn into_fg<C>(self, color: C) -> StyledValue<Self, C>
where Self: Sized,

Changes the foreground color
source§

fn bg<C>(&self, color: C) -> StyledValue<&Self, NoColor, C>

Changes the background color
source§

fn into_bg<C>(self, color: C) -> StyledValue<Self, NoColor, C>
where Self: Sized,

Changes the background color
source§

fn underline_color<C>( &self, color: C ) -> StyledValue<&Self, NoColor, NoColor, C>

Changes the underline color
source§

fn into_underline_color<C>( self, color: C ) -> StyledValue<Self, NoColor, NoColor, C>
where Self: Sized,

Changes the underline color
source§

fn black(&self) -> StyledValue<&Self, Black>

Changes the foreground to black
source§

fn red(&self) -> StyledValue<&Self, Red>

Changes the foreground to red
source§

fn green(&self) -> StyledValue<&Self, Green>

Changes the foreground to green
source§

fn yellow(&self) -> StyledValue<&Self, Yellow>

Changes the foreground to yellow
source§

fn blue(&self) -> StyledValue<&Self, Blue>

Changes the foreground to blue
source§

fn magenta(&self) -> StyledValue<&Self, Magenta>

Changes the foreground to magenta
source§

fn cyan(&self) -> StyledValue<&Self, Cyan>

Changes the foreground to cyan
source§

fn white(&self) -> StyledValue<&Self, White>

Changes the foreground to white
source§

fn bright_black(&self) -> StyledValue<&Self, BrightBlack>

Changes the foreground to bright black
source§

fn bright_red(&self) -> StyledValue<&Self, BrightRed>

Changes the foreground to bright red
source§

fn bright_green(&self) -> StyledValue<&Self, BrightGreen>

Changes the foreground to bright green
source§

fn bright_yellow(&self) -> StyledValue<&Self, BrightYellow>

Changes the foreground to bright yellow
source§

fn bright_blue(&self) -> StyledValue<&Self, BrightBlue>

Changes the foreground to bright blue
source§

fn bright_magenta(&self) -> StyledValue<&Self, BrightMagenta>

Changes the foreground to bright magenta
source§

fn bright_cyan(&self) -> StyledValue<&Self, BrightCyan>

Changes the foreground to bright cyan
source§

fn bright_white(&self) -> StyledValue<&Self, BrightWhite>

Changes the foreground to bright white
source§

fn on_black(&self) -> StyledValue<&Self, NoColor, Black>

Changes the background to black
source§

fn on_red(&self) -> StyledValue<&Self, NoColor, Red>

Changes the background to red
source§

fn on_green(&self) -> StyledValue<&Self, NoColor, Green>

Changes the background to green
source§

fn on_yellow(&self) -> StyledValue<&Self, NoColor, Yellow>

Changes the background to yellow
source§

fn on_blue(&self) -> StyledValue<&Self, NoColor, Blue>

Changes the background to blue
source§

fn on_magenta(&self) -> StyledValue<&Self, NoColor, Magenta>

Changes the background to magenta
source§

fn on_cyan(&self) -> StyledValue<&Self, NoColor, Cyan>

Changes the background to cyan
source§

fn on_white(&self) -> StyledValue<&Self, NoColor, White>

Changes the background to white
source§

fn on_bright_black(&self) -> StyledValue<&Self, NoColor, BrightBlack>

Changes the background to bright black
source§

fn on_bright_red(&self) -> StyledValue<&Self, NoColor, BrightRed>

Changes the background to bright red
source§

fn on_bright_green(&self) -> StyledValue<&Self, NoColor, BrightGreen>

Changes the background to bright green
source§

fn on_bright_yellow(&self) -> StyledValue<&Self, NoColor, BrightYellow>

Changes the background to bright yellow
source§

fn on_bright_blue(&self) -> StyledValue<&Self, NoColor, BrightBlue>

Changes the background to bright blue
source§

fn on_bright_magenta(&self) -> StyledValue<&Self, NoColor, BrightMagenta>

Changes the background to bright magenta
source§

fn on_bright_cyan(&self) -> StyledValue<&Self, NoColor, BrightCyan>

Changes the background to bright cyan
source§

fn on_bright_white(&self) -> StyledValue<&Self, NoColor, BrightWhite>

Changes the background to bright white
source§

fn into_black(self) -> StyledValue<Self, Black>
where Self: Sized,

Changes the foreground to black
source§

fn into_red(self) -> StyledValue<Self, Red>
where Self: Sized,

Changes the foreground to red
source§

fn into_green(self) -> StyledValue<Self, Green>
where Self: Sized,

Changes the foreground to green
source§

fn into_yellow(self) -> StyledValue<Self, Yellow>
where Self: Sized,

Changes the foreground to yellow
source§

fn into_blue(self) -> StyledValue<Self, Blue>
where Self: Sized,

Changes the foreground to blue
source§

fn into_magenta(self) -> StyledValue<Self, Magenta>
where Self: Sized,

Changes the foreground to magenta
source§

fn into_cyan(self) -> StyledValue<Self, Cyan>
where Self: Sized,

Changes the foreground to cyan
source§

fn into_white(self) -> StyledValue<Self, White>
where Self: Sized,

Changes the foreground to white
source§

fn into_bright_black(self) -> StyledValue<Self, BrightBlack>
where Self: Sized,

Changes the foreground to bright black
source§

fn into_bright_red(self) -> StyledValue<Self, BrightRed>
where Self: Sized,

Changes the foreground to bright red
source§

fn into_bright_green(self) -> StyledValue<Self, BrightGreen>
where Self: Sized,

Changes the foreground to bright green
source§

fn into_bright_yellow(self) -> StyledValue<Self, BrightYellow>
where Self: Sized,

Changes the foreground to bright yellow
source§

fn into_bright_blue(self) -> StyledValue<Self, BrightBlue>
where Self: Sized,

Changes the foreground to bright blue
source§

fn into_bright_magenta(self) -> StyledValue<Self, BrightMagenta>
where Self: Sized,

Changes the foreground to bright magenta
source§

fn into_bright_cyan(self) -> StyledValue<Self, BrightCyan>
where Self: Sized,

Changes the foreground to bright cyan
source§

fn into_bright_white(self) -> StyledValue<Self, BrightWhite>
where Self: Sized,

Changes the foreground to bright white
source§

fn into_on_black(self) -> StyledValue<Self, NoColor, Black>
where Self: Sized,

Changes the background to black
source§

fn into_on_red(self) -> StyledValue<Self, NoColor, Red>
where Self: Sized,

Changes the background to red
source§

fn into_on_green(self) -> StyledValue<Self, NoColor, Green>
where Self: Sized,

Changes the background to green
source§

fn into_on_yellow(self) -> StyledValue<Self, NoColor, Yellow>
where Self: Sized,

Changes the background to yellow
source§

fn into_on_blue(self) -> StyledValue<Self, NoColor, Blue>
where Self: Sized,

Changes the background to blue
source§

fn into_on_magenta(self) -> StyledValue<Self, NoColor, Magenta>
where Self: Sized,

Changes the background to magenta
source§

fn into_on_cyan(self) -> StyledValue<Self, NoColor, Cyan>
where Self: Sized,

Changes the background to cyan
source§

fn into_on_white(self) -> StyledValue<Self, NoColor, White>
where Self: Sized,

Changes the background to white
source§

fn into_on_bright_black(self) -> StyledValue<Self, NoColor, BrightBlack>
where Self: Sized,

Changes the background to bright black
source§

fn into_on_bright_red(self) -> StyledValue<Self, NoColor, BrightRed>
where Self: Sized,

Changes the background to bright red
source§

fn into_on_bright_green(self) -> StyledValue<Self, NoColor, BrightGreen>
where Self: Sized,

Changes the background to bright green
source§

fn into_on_bright_yellow(self) -> StyledValue<Self, NoColor, BrightYellow>
where Self: Sized,

Changes the background to bright yellow
source§

fn into_on_bright_blue(self) -> StyledValue<Self, NoColor, BrightBlue>
where Self: Sized,

Changes the background to bright blue
source§

fn into_on_bright_magenta(self) -> StyledValue<Self, NoColor, BrightMagenta>
where Self: Sized,

Changes the background to bright magenta
source§

fn into_on_bright_cyan(self) -> StyledValue<Self, NoColor, BrightCyan>
where Self: Sized,

Changes the background to bright cyan
source§

fn into_on_bright_white(self) -> StyledValue<Self, NoColor, BrightWhite>
where Self: Sized,

Changes the background to bright white
source§

fn bold(&self) -> StyledValue<&Self>

Applies the bold effect
source§

fn dimmed(&self) -> StyledValue<&Self>

Applies the dimmed effect
source§

fn italics(&self) -> StyledValue<&Self>

Applies the italics effect
source§

fn underline(&self) -> StyledValue<&Self>

Applies the underline effect
source§

fn double_underline(&self) -> StyledValue<&Self>

Applies the double underline effect
Applies the blink effect
Applies the blink fast effect
source§

fn reverse(&self) -> StyledValue<&Self>

Applies the reverse effect
source§

fn hide(&self) -> StyledValue<&Self>

Applies the hide effect
source§

fn strikethrough(&self) -> StyledValue<&Self>

Applies the strikethrough effect
source§

fn overline(&self) -> StyledValue<&Self>

Applies the overline effect
source§

fn superscript(&self) -> StyledValue<&Self>

Applies the superscript effect
source§

fn subscript(&self) -> StyledValue<&Self>

Applies the subscript effect
source§

fn into_bold(self) -> StyledValue<Self>
where Self: Sized,

Applies the bold effect
source§

fn into_dimmed(self) -> StyledValue<Self>
where Self: Sized,

Applies the dimmed effect
source§

fn into_italics(self) -> StyledValue<Self>
where Self: Sized,

Applies the italics effect
source§

fn into_underline(self) -> StyledValue<Self>
where Self: Sized,

Applies the underline effect
source§

fn into_double_underline(self) -> StyledValue<Self>
where Self: Sized,

Applies the double underline effect
Applies the blink effect
Applies the blink fast effect
source§

fn into_reverse(self) -> StyledValue<Self>
where Self: Sized,

Applies the reverse effect
source§

fn into_hide(self) -> StyledValue<Self>
where Self: Sized,

Applies the hide effect
source§

fn into_strikethrough(self) -> StyledValue<Self>
where Self: Sized,

Applies the strikethrough effect
source§

fn into_overline(self) -> StyledValue<Self>
where Self: Sized,

Applies the overline effect
source§

fn into_superscript(self) -> StyledValue<Self>
where Self: Sized,

Applies the superscript effect
source§

fn into_subscript(self) -> StyledValue<Self>
where Self: Sized,

Applies the subscript effect
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,

§

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>,

§

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V