# jemalloc-ctl [![Travis-CI Status]][travis] [![Latest Version]][crates.io] [![docs]][docs.rs] > A safe wrapper over `jemalloc`'s `mallctl*()` control and introspection APIs. ## Documentation * [Latest release (docs.rs)][docs.rs] ## Platform support Supported on all platforms supported by the [`jemallocator`] crate. ## Example ```no_run 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 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) 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. [`jemallocator`]: https://github.com/tikv/jemallocator [travis]: https://travis-ci.com/tikv/jemallocator [Travis-CI Status]: https://travis-ci.com/tikv/jemallocator.svg?branch=master [Latest Version]: https://img.shields.io/crates/v/jemallocator.svg [crates.io]: https://crates.io/crates/jemallocator [docs]: https://docs.rs/jemallocator/badge.svg [docs.rs]: https://docs.rs/jemallocator/