Struct tikv_jemalloc_ctl::thread::allocatedp

source ·
pub struct allocatedp;
Expand description

Access to the total number of bytes allocated by the current thread.

Unlike crate::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 read 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::read can be called on different threads and will return the appropriate pointer for each of them.

§Example

use tikv_jemalloc_ctl::thread;
let allocated = thread::allocatedp::mib().unwrap();
let allocated = allocated.read().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);

Implementations§

source§

impl allocatedp

source

pub fn mib() -> Result<allocatedp_mib>

Returns Management Information Base (MIB)

This value can be used to access the key without doing string lookup.

source

pub fn name() -> &'static Name

source§

impl allocatedp

source

pub fn read() -> Result<ThreadLocal<u64>>

Reads value using string API.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.