[][src]Crate stats_alloc

An instrumenting middleware for global allocators in Rust, useful in testing for validating assumptions regarding allocation patterns, and potentially in production loads to monitor for memory leaks.

Example

extern crate stats_alloc;

use stats_alloc::{Region, StatsAlloc, INSTRUMENTED_SYSTEM};
use std::alloc::System;

#[global_allocator]
static GLOBAL: &StatsAlloc<System> = &INSTRUMENTED_SYSTEM;

fn main() {
    let reg = Region::new(&GLOBAL);
    let x: Vec<u8> = Vec::with_capacity(1_024);
    println!("Stats at 1: {:#?}", reg.change());
    // Used here to ensure that the value is not
    // dropped before we check the statistics
    ::std::mem::size_of_val(&x);
}

Structs

Region

A snapshot of the allocation statistics, which can be used to determine allocation changes while the Region is alive.

Stats

Allocator statistics

StatsAlloc

An instrumenting middleware which keeps track of allocation, deallocation, and reallocation requests to the underlying global allocator.

Statics

INSTRUMENTED_SYSTEM

An instrumented instance of the system allocator.