Struct bustle::Workload

source ·
pub struct Workload { /* private fields */ }
Expand description

A benchmark workload builder.

Implementations§

source§

impl Workload

source

pub fn new(threads: usize, mix: Mix) -> Self

Start building a new benchmark workload.

source

pub fn initial_capacity_log2(&mut self, capacity: u8) -> &mut Self

Set the initial capacity for the map.

Note that the capacity will be 2^ the given capacity!

The number of operations and the number of pre-filled keys are determined based on the computed initial capacity, so keep that in mind if you change this parameter.

Defaults to 25 (so 2^25 ~= 34M).

source

pub fn prefill_fraction(&mut self, fraction: f64) -> &mut Self

Set the fraction of the initial table capacity we should populate before running the benchmark.

Defaults to 0%.

source

pub fn operations(&mut self, multiple: f64) -> &mut Self

Set the number of operations to run as a multiple of the initial capacity.

This value can exceed 1.0.

Defaults to 0.75 (75%).

source

pub fn seed(&mut self, seed: [u8; 32]) -> &mut Self

Set the seed used to randomize the workload.

The seed does not dictate thread interleaving, so you will only observe the exact same workload if you run the benchmark with nthreads == 1.

source

pub fn run<T: Collection>(&self) -> [u8; 32]where
<T::Handle as CollectionHandle>::Key: Send + Debug,

Execute this workload against the collection type given by T.

The key type must be Send since we generate the keys on a different thread than the one we do the benchmarks on.

The key type must be Debug so that we can print meaningful errors if an assertion is violated during the benchmark.

Returns the seed used for the run.

source

pub fn run_silently<T: Collection>(&self) -> Measurementwhere
<T::Handle as CollectionHandle>::Key: Send + Debug,

Execute this workload against the collection type given by T.

The key type must be Send since we generate the keys on a different thread than the one we do the benchmarks on.

The key type must be Debug so that we can print meaningful errors if an assertion is violated during the benchmark.

Trait Implementations§

source§

impl Clone for Workload

source§

fn clone(&self) -> Workload

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 Workload

source§

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

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

impl Copy for Workload

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

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

const: unstable · 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 Twhere
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 Twhere
U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more