6 releases
0.6.0 | Jul 14, 2024 |
---|---|
0.5.4 | Jul 27, 2023 |
0.5.0 | May 24, 2022 |
0.4.2 | Aug 9, 2021 |
0.4.0 | Jul 21, 2020 |
#284 in Memory management
1,012,509 downloads per month
Used in 81 crates
(16 directly)
2MB
52K
SLoC
jemalloc-ctl
A safe wrapper over
jemalloc
'smallctl*()
control and introspection APIs.
Documentation
Platform support
Supported on all platforms supported by the tikv-jemallocator
crate.
Example
use std::thread;
use std::time::Duration;
use tikv_jemalloc_ctl::{stats, epoch};
#[global_allocator]
static ALLOC: tikv_jemallocator::Jemalloc = tikv_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 or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (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.