[][src]Function alloc_counter::count_alloc

pub fn count_alloc<F, R>(f: F) -> ((usize, usize, usize), R) where
    F: FnOnce() -> R, 

Count the allocations, reallocations, and deallocations that happen during execution of a closure.

Example:

let (counts, result) = count_alloc(|| {
    // no alloc
    let mut v = Vec::new();
    // alloc
    v.push(0);
    // realloc
    v.push(8);
    // return 8 from the closure
    v.pop().unwrap()
    // dealloc on dropping v
});
assert_eq!(result, 8);
assert_eq!(counts, (1, 1, 1));