pub struct PerfScope {
start: u64,
accumulator: &'static AtomicU64,
counter: &'static AtomicU64,
}Expand description
Measures elapsed TSC cycles between construction and drop, accumulating into the given counter pair.
Usage:
ⓘ
let _perf = PerfScope::new(&IRQ_TIMER_TSC, &IRQ_TIMER_COUNT);
// ... measured code ...
// counters updated on dropFields§
§start: u64§accumulator: &'static AtomicU64§counter: &'static AtomicU64Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PerfScope
impl RefUnwindSafe for PerfScope
impl Send for PerfScope
impl Sync for PerfScope
impl Unpin for PerfScope
impl UnsafeUnpin for PerfScope
impl UnwindSafe for PerfScope
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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