pub struct PoolStats {
pub hits: AtomicUsize,
pub misses: AtomicUsize,
pub checked_out: AtomicUsize,
pub peak_checked_out: AtomicUsize,
pub bytes_checked_out: AtomicUsize,
pub peak_bytes_checked_out: AtomicUsize,
}Expand description
Pool statistics for observability.
All counters use relaxed atomics and are safe to read from any thread.
§Example
use santh_bufpool::{BufferPool, PoolConfig};
let pool = BufferPool::new(PoolConfig::default());
let buf = pool.checkout(64).unwrap();
let stats = pool.stats().snapshot();
assert_eq!(stats.checked_out, 1);
drop(buf);Fields§
§hits: AtomicUsizeNumber of successful checkouts from the pool (reuse).
misses: AtomicUsizeNumber of fallback allocations (pool exhausted).
checked_out: AtomicUsizeNumber of buffers currently checked out.
peak_checked_out: AtomicUsizePeak simultaneous checkouts observed.
bytes_checked_out: AtomicUsizeTotal bytes currently checked out (sum of requested sizes).
peak_bytes_checked_out: AtomicUsizePeak bytes checked out simultaneously.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for PoolStats
impl RefUnwindSafe for PoolStats
impl Send for PoolStats
impl Sync for PoolStats
impl Unpin for PoolStats
impl UnsafeUnpin for PoolStats
impl UnwindSafe for PoolStats
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more