ProfilingAllocator

Struct ProfilingAllocator 

Source
pub struct ProfilingAllocator<const CPU_FREQ: u32 = 99>;
Expand description

A profiling allocator that wraps the system allocator.

The const generic CPU_FREQ specifies the CPU sampling frequency in Hz. Set to 0 to disable CPU profiling.

When the heap feature is enabled, this allocator captures allocation and deallocation events along with stack traces. CPU profiling (if enabled) starts automatically on the first allocation.

When profiling features are disabled, it’s a zero-cost passthrough.

Implementations§

Source§

impl<const CPU_FREQ: u32> ProfilingAllocator<CPU_FREQ>

Source

pub const fn new() -> Self

Trait Implementations§

Source§

impl<const CPU_FREQ: u32> Default for ProfilingAllocator<CPU_FREQ>

Source§

fn default() -> Self

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

impl<const CPU_FREQ: u32> GlobalAlloc for ProfilingAllocator<CPU_FREQ>

Source§

unsafe fn alloc(&self, layout: Layout) -> *mut u8

Allocates memory as described by the given layout. Read more
Source§

unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout)

Deallocates the block of memory at the given ptr pointer with the given layout. Read more
Source§

unsafe fn realloc( &self, ptr: *mut u8, _layout: Layout, new_size: usize, ) -> *mut u8

Shrinks or grows a block of memory to the given new_size in bytes. The block is described by the given ptr pointer and layout. Read more
Source§

unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8

Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more

Auto Trait Implementations§

§

impl<const CPU_FREQ: u32> Freeze for ProfilingAllocator<CPU_FREQ>

§

impl<const CPU_FREQ: u32> RefUnwindSafe for ProfilingAllocator<CPU_FREQ>

§

impl<const CPU_FREQ: u32> Send for ProfilingAllocator<CPU_FREQ>

§

impl<const CPU_FREQ: u32> Sync for ProfilingAllocator<CPU_FREQ>

§

impl<const CPU_FREQ: u32> Unpin for ProfilingAllocator<CPU_FREQ>

§

impl<const CPU_FREQ: u32> UnwindSafe for ProfilingAllocator<CPU_FREQ>

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

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.