pub struct MemoryPoolReport {
pub kind: MemoryPoolKind,
pub usage: MemoryUsage,
pub pages: u64,
pub pages_peak: u64,
pub pages_unmapped: u64,
pub largest_alloc: u64,
}Expand description
A structured snapshot of one memory pool: its shape, its current usage, and the high-water marks a memory plan is derived from.
Fields§
§kind: MemoryPoolKindThe pool’s shape and effective configuration.
usage: MemoryUsageThe pool’s current usage.
pages: u64Device allocations (pages) currently held.
pages_peak: u64The most device allocations ever held at once.
For a sliced pool this is the number a capped layout needs:
pages are carved by a deterministic first-fit policy, so replaying the
same allocation stream against pages_peak * page_size fits by
construction.
pages_unmapped: u64How many of the current pages have no device backing yet — carved
under a dry run and never resolved into anything that executes. They
count toward pages/pages_peak (the plan is the reserved stream)
while costing no device memory; pages - pages_unmapped is the dry
run’s actual footprint in this pool.
largest_alloc: u64The largest single allocation this pool ever served, in requested (pre-padding) bytes.
Trait Implementations§
Source§impl Clone for MemoryPoolReport
impl Clone for MemoryPoolReport
Source§fn clone(&self) -> MemoryPoolReport
fn clone(&self) -> MemoryPoolReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MemoryPoolReport
impl Debug for MemoryPoolReport
impl Eq for MemoryPoolReport
Source§impl PartialEq for MemoryPoolReport
impl PartialEq for MemoryPoolReport
impl StructuralPartialEq for MemoryPoolReport
Auto Trait Implementations§
impl Freeze for MemoryPoolReport
impl RefUnwindSafe for MemoryPoolReport
impl Send for MemoryPoolReport
impl Sync for MemoryPoolReport
impl Unpin for MemoryPoolReport
impl UnsafeUnpin for MemoryPoolReport
impl UnwindSafe for MemoryPoolReport
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more