BenchAssert

Struct BenchAssert 

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

Measure the compilation time for the assert! macro

For context of an average large project:

egrep -r "assert[!_]" . | wc -l

bevy: 7,000 wasm-bindgen: 3,000 rust: 50,000

§Expect

10 lines of ‘expect’ comilied in 0.53s, each line added 53.00ms 100 lines of ‘expect’ comilied in 0.47s, each line added 4.70ms 1000 lines of ‘expect’ comilied in 0.49s, each line added 0.49ms 2000 lines of ‘expect’ comilied in 0.50s, each line added 0.25ms 3000 lines of ‘expect’ comilied in 0.53s, each line added 0.18ms 5000 lines of ‘expect’ comilied in 0.56s, each line added 0.11ms 10000 lines of ‘expect’ comilied in 0.70s, each line added 0.07ms * consistency starts here 100000 lines of ‘expect’ comilied in 5.37s, each line added 0.05ms 20000 lines of ‘expect’ comilied in 1.06s, each line added 0.05ms 500000 lines of ‘expect’ comilied in 44.00s, each line added 0.09ms

§Assert

10 lines of ‘assert’ comilied in 0.21s, each line added 21.00ms 100 lines of ‘assert’ comilied in 0.23s, each line added 2.30ms 1000 lines of ‘assert’ comilied in 1.54s, each line added 1.54ms * smallest 2000 lines of ‘assert’ comilied in 4.92s, each line added 2.46ms 3000 lines of ‘assert’ comilied in 11.61s, each line added 3.87ms 5000 lines of ‘assert’ comilied in 26.96s, each line added 5.39ms * consistency starts here 10000 lines of ‘assert’ comilied in 55.00s, each line added 5.50ms 20000 lines of ‘expect’ comilied in 1.06s, each line added 0.05ms * this is incorrect, it actually took 10 mins 100000… no way dude

Implementations§

Source§

impl BenchAssert

Source

pub fn run(self) -> Result<()>

Trait Implementations§

Source§

impl Args for BenchAssert

Source§

fn group_id() -> Option<Id>

Report the ArgGroup::id for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

impl CommandFactory for BenchAssert

Source§

fn command<'b>() -> Command

Build a Command that can instantiate Self. Read more
Source§

fn command_for_update<'b>() -> Command

Build a Command that can update self. Read more
Source§

impl Debug for BenchAssert

Source§

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

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

impl FromArgMatches for BenchAssert

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Parser for BenchAssert

Source§

fn parse() -> Self

Parse from std::env::args_os(), exit on error.
Source§

fn try_parse() -> Result<Self, Error>

Parse from std::env::args_os(), return Err on error.
Source§

fn parse_from<I, T>(itr: I) -> Self
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, exit on error.
Source§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, return Err on error.
Source§

fn update_from<I, T>(&mut self, itr: I)
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, exit on error. Read more
Source§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, return Err on error.

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> From<T> for T

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 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> PipelineTarget for T

Source§

fn xmap<O>(self, func: impl FnOnce(Self) -> O) -> O

its like map but for any type
Source§

fn xtap(self, func: impl FnOnce(&mut Self)) -> Self

its like inpsect but for any type
Source§

fn xdebug(self) -> Self
where Self: Debug,

Source§

fn xdisplay(self) -> Self
where Self: Display,

Source§

fn xtap_mut(&mut self, func: impl FnOnce(&mut Self)) -> &mut Self

Source§

fn xpipe<P, O>(self, pipeline: P) -> O
where P: Pipeline<Self, O>,

its like map but for our pipeline trait
Source§

fn xref(&self) -> &Self

Source§

fn xok<E>(self) -> Result<Self, E>

Source§

fn xsome(self) -> Option<Self>

Source§

fn xinto<T>(self) -> T
where T: From<Self>,

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
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
Source§

impl<T> Xpect for T

Source§

fn xpect(self) -> Matcher<Self>

Create a new Matcher with the provided received value.