pub struct MemoryTracker { /* private fields */ }Expand description
Tracks per-category memory allocations with explicit alloc/free calls.
This is not a general allocator hook; it records explicit calls from subsystems that want to track their approximate heap usage.
Implementations§
Source§impl MemoryTracker
impl MemoryTracker
pub fn new() -> Self
Sourcepub fn alloc(&mut self, category: &str, bytes: usize)
pub fn alloc(&mut self, category: &str, bytes: usize)
Record an allocation of bytes bytes in category.
Sourcepub fn peak_total(&self) -> usize
pub fn peak_total(&self) -> usize
Peak total bytes seen across all categories at any single point.
Sourcepub fn report_by_category(&self) -> Vec<(String, usize)>
pub fn report_by_category(&self) -> Vec<(String, usize)>
Per-category report sorted by current usage (descending).
Sourcepub fn detailed_report(&self) -> Vec<CategoryReport>
pub fn detailed_report(&self) -> Vec<CategoryReport>
Detailed per-category report including peak and alloc counts.
Sourcepub fn format_report(&self) -> String
pub fn format_report(&self) -> String
Format a human-readable report.
Sourcepub fn reset_category(&mut self, category: &str)
pub fn reset_category(&mut self, category: &str)
Reset a specific category.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MemoryTracker
impl RefUnwindSafe for MemoryTracker
impl Send for MemoryTracker
impl Sync for MemoryTracker
impl Unpin for MemoryTracker
impl UnsafeUnpin for MemoryTracker
impl UnwindSafe for MemoryTracker
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.