Function jemalloc_ctl::thread::allocatedp[][src]

pub fn allocatedp() -> Result<ThreadLocal<u64>>

Returns a thread-local pointer to the total number of bytes allocated by the current thread.

Unlike [stats::allocated], the value returned by this type is not the number of bytes currently allocated, but rather the number of bytes that have ever been allocated by this thread.

This function doesn't return the value directly, but actually a pointer to the value. This allows for very fast repeated lookup, since there is no function call overhead. The pointer type cannot be sent to other threads, but allocated can be called on different threads and will return the appropriate pointer for each of them.

This corresponds to thread.allocatedp in jemalloc's API.

Examples

extern crate jemallocator;
extern crate jemalloc_ctl;

#[global_allocator]
static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;

fn main() {
    let allocated = jemalloc_ctl::thread::allocatedp().unwrap();

    let a = allocated.get();
    let buf = vec![0; 1024 * 1024];
    let b = allocated.get();
    drop(buf);
    let c = allocated.get();

    assert!(a < b);
    assert_eq!(b, c);
}