pub struct MemoryAllocation {
pub ptr: usize,
pub size: usize,
pub allocated_at: Instant,
pub source: AllocationSource,
pub memory_type: MemoryType,
pub device: Option<Device>,
pub usage_stats: AllocationUsageStats,
pub lifetime_events: Vec<LifetimeEvent>,
pub performance_hints: Vec<PerformanceHint>,
}Expand description
Memory allocation tracking information
Tracks detailed metadata for each memory allocation including size, location, usage statistics, and performance characteristics.
Fields§
§ptr: usizeAddress of allocated memory
size: usizeSize of allocation in bytes
allocated_at: InstantAllocation timestamp
source: AllocationSourceAllocation source (stack trace if available)
memory_type: MemoryTypeMemory type (device, host, unified, etc.)
device: Option<Device>Associated device
usage_stats: AllocationUsageStatsUsage statistics
lifetime_events: Vec<LifetimeEvent>Lifetime tracking
performance_hints: Vec<PerformanceHint>Performance hints
Implementations§
Source§impl MemoryAllocation
impl MemoryAllocation
Sourcepub fn new(
ptr: usize,
size: usize,
source: AllocationSource,
memory_type: MemoryType,
device: Option<Device>,
) -> Self
pub fn new( ptr: usize, size: usize, source: AllocationSource, memory_type: MemoryType, device: Option<Device>, ) -> Self
Create a new memory allocation record
Sourcepub fn record_access(&mut self, access_type: AccessType, bytes: usize)
pub fn record_access(&mut self, access_type: AccessType, bytes: usize)
Record a memory access event
Sourcepub fn add_performance_hint(&mut self, hint: PerformanceHint)
pub fn add_performance_hint(&mut self, hint: PerformanceHint)
Add a performance hint
Sourcepub fn total_bytes_accessed(&self) -> u64
pub fn total_bytes_accessed(&self) -> u64
Get total bytes accessed
Trait Implementations§
Source§impl Clone for MemoryAllocation
impl Clone for MemoryAllocation
Source§fn clone(&self) -> MemoryAllocation
fn clone(&self) -> MemoryAllocation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MemoryAllocation
impl RefUnwindSafe for MemoryAllocation
impl Send for MemoryAllocation
impl Sync for MemoryAllocation
impl Unpin for MemoryAllocation
impl UnsafeUnpin for MemoryAllocation
impl UnwindSafe for MemoryAllocation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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