pub struct AllocatedP(_);
A type providing access 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.
The get
method 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::get
can be called on different threads and
will return the appropriate pointer for each of them.
extern crate jemallocator;
extern crate jemalloc_ctl;
use jemalloc_ctl::thread::AllocatedP;
#[global_allocator]
static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;
fn main() {
let allocated = AllocatedP::new().unwrap();
let allocated = allocated.get().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);
}
Returns a thread-local pointer to the total number of bytes allocated by this thread.
Performs copy-assignment from source
. Read more