[][src]Struct peak_alloc::PeakAlloc

pub struct PeakAlloc;

This structure implements a dead simple low-overhead wrapper around the system allocator. It lets a program know its own memory and peak memory consumption at runtime.

Note

The peak allocator is really just a shim around the system allocator. The bulk of its work is delegated to the system allocator and all PeakAlloc does is to maintain the atomic counters.

Example

To make use of the PeakAllocator, all you need to do, is to declare a static instance of it, and annotate it with the #[global_allocator] attribute. Then, in your main module (or anywhere else in your code where it is deemed useful), you just call methods on the static variable you declared.

use peak_alloc::PeakAlloc;

#[global_allocator]
static PEAK_ALLOC: PeakAlloc = PeakAlloc;

fn main() {
    // Do your funky stuff...

    let current_mem = PEAK_ALLOC.current_usage_as_mb();
    println!("This program currently uses {} MB of RAM.", current_mem);
    let peak_mem = PEAK_ALLOC.peak_usage_as_gb();
    println!("The max amount that was used {}", peak_mem);
}

Implementations

impl PeakAlloc[src]

pub fn current_usage(&self) -> usize[src]

Returns the number of bytes that are currently allocated to the process

pub fn peak_usage(&self) -> usize[src]

Returns the maximum number of bytes that have been allocated to the process over the course of its life.

pub fn current_usage_as_kb(&self) -> f32[src]

Returns the amount of memory (in kb) that is currently allocated to the process.

pub fn current_usage_as_mb(&self) -> f32[src]

Returns the amount of memory (in mb) that is currently allocated to the process.

pub fn current_usage_as_gb(&self) -> f32[src]

Returns the amount of memory (in gb) that is currently allocated to the process.

pub fn peak_usage_as_kb(&self) -> f32[src]

Returns the maximum quantity of memory (in kb) that have been allocated to the process over the course of its life.

pub fn peak_usage_as_mb(&self) -> f32[src]

Returns the maximum quantity of memory (in mb) that have been allocated to the process over the course of its life.

pub fn peak_usage_as_gb(&self) -> f32[src]

Returns the maximum quantity of memory (in gb) that have been allocated to the process over the course of its life.

Trait Implementations

impl Clone for PeakAlloc[src]

impl Copy for PeakAlloc[src]

impl Debug for PeakAlloc[src]

impl Default for PeakAlloc[src]

impl GlobalAlloc for PeakAlloc[src]

PeakAlloc only implements the minimum required set of methods to make it useable as a global allocator (with #[global_allocator] attribute).

No funky stuff is done below.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.