Function tikv_jemalloc_ctl::raw::name_to_mib [−][src]
pub fn name_to_mib(name: &[u8], mib: &mut [usize]) -> Result<()>
Expand description
Translates name
to a mib
(Management Information Base)
mib
s are used to avoid repeated name lookups for applications that
repeatedly query the same portion of jemalloc
s mallctl
namespace.
On success, mib
contains an array of integers. It is possible to pass
mib
with a length smaller than the number of period-separated name
components. This results in a partial MIB that can be used as the basis for
constructing a complete MIB.
For name components that are integers (e.g. the 2
in arenas.bin.2.size
),
the corresponding MIB component will always be that integer. Therefore, it
is legitimate to construct code like the following:
#[global_allocator] static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc; fn main() { use tikv_jemalloc_ctl::raw; use libc::{c_uint, c_char}; unsafe { let mut mib = [0; 4]; let nbins: c_uint = raw::read(b"arenas.nbins\0").unwrap(); raw::name_to_mib(b"arenas.bin.0.size\0", &mut mib).unwrap(); for i in 0..4 { mib[2] = i; let bin_size: usize = raw::read_mib(&mut mib).unwrap(); println!("arena bin {} has size {}", i, bin_size); } } }