Struct dhat::Profiler

source ·
pub struct Profiler;
Expand description

A type whose lifetime dictates the start and end of profiling.

Profiling starts when the first value of this type is created. Profiling stops when (a) this value is dropped or (b) a dhat assertion fails, whichever comes first. When that happens, profiling data may be written to file, depending on how the Profiler has been configured. Only one Profiler can be running at any point in time.

Implementations§

source§

impl Profiler

source

pub fn new_heap() -> Self

Initiates allocation profiling.

Typically the first thing in main. Its result should be assigned to a variable whose lifetime ends at the end of main.

§Panics

Panics if another Profiler is running.

§Examples
let _profiler = dhat::Profiler::new_heap();
source

pub fn new_ad_hoc() -> Self

Initiates ad hoc profiling.

Typically the first thing in main. Its result should be assigned to a variable whose lifetime ends at the end of main.

§Panics

Panics if another Profiler is running.

§Examples
let _profiler = dhat::Profiler::new_ad_hoc();
source

pub fn builder() -> ProfilerBuilder

Creates a new ProfilerBuilder, which defaults to heap profiling.

Trait Implementations§

source§

impl Debug for Profiler

source§

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

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

impl Drop for Profiler

source§

fn drop(&mut self)

Executes the destructor for this type. 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> 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, 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.