jemalloc-ctl

![Travis-CI Status] ![Appveyor Status] ![Latest Version] ![docs]

A safe wrapper over jemalloc's mallctl*() control and introspection APIs.

Documentation

Platform support

Supported on all platforms supported by the [jemallocator] crate.

Example

```norun extern crate jemallocator; extern crate jemallocctl;

use std::thread; use std::time::Duration; use jemalloc_ctl::{stats, epoch};

[global_allocator]

static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;

fn main() { // Obtain a MIB for the epoch, stats.allocated, and // atats.resident keys: let e = epoch::mib().unwrap(); let allocated = stats::allocated::mib().unwrap(); let resident = stats::resident::mib().unwrap();

loop {
    // Many statistics are cached and only updated 
    // when the epoch is advanced:
    e.advance().unwrap();

    // Read statistics using MIB key:
    let allocated = allocated.read().unwrap();
    let resident = resident.read().unwrap();
    println!("{} bytes allocated/{} bytes resident", allocated, resident);
    thread::sleep(Duration::from_secs(10));
}

} ```

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in jemalloc-ctl by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.