pub struct FrameData {
pub scope_delta: Vec<Arc<ScopeDetails>>,
pub full_delta: bool,
/* private fields */
}
Expand description
One frame worth of profile data, collected from many sources.
If you turn on the “packing” feature, then FrameData
has interior mutability with double storage:
- Unpacked data (
UnpackedFrameData
) - Packed (compressed) data
One or both are always stored. This allows RAM-efficient storage and viewing of many frames of profiling data. Packing and unpacking is done lazily, on-demand.
Fields§
§scope_delta: Vec<Arc<ScopeDetails>>
Scopes that were registered during this frame.
full_delta: bool
Does Self::scope_delta
contain all the scopes up to this point?
If false
, it just contains the new scopes since last frame data.
Implementations§
source§impl FrameData
impl FrameData
sourcepub fn new(
frame_index: FrameIndex,
thread_streams: BTreeMap<ThreadInfo, StreamInfo>,
scope_delta: Vec<Arc<ScopeDetails>>,
full_delta: bool
) -> Result<Self>
pub fn new( frame_index: FrameIndex, thread_streams: BTreeMap<ThreadInfo, StreamInfo>, scope_delta: Vec<Arc<ScopeDetails>>, full_delta: bool ) -> Result<Self>
Create a new FrameData
.
sourcepub fn packed_size(&self) -> Option<usize>
pub fn packed_size(&self) -> Option<usize>
Number of bytes used by the packed data, if packed.
sourcepub fn unpacked_size(&self) -> Option<usize>
pub fn unpacked_size(&self) -> Option<usize>
Number of bytes used when unpacked, if known.
sourcepub fn bytes_of_ram_used(&self) -> usize
pub fn bytes_of_ram_used(&self) -> usize
bytes currently used by the unpacked and packed data.
sourcepub fn has_packed(&self) -> bool
pub fn has_packed(&self) -> bool
Do we have a packed version stored internally?
sourcepub fn has_unpacked(&self) -> bool
pub fn has_unpacked(&self) -> bool
Do we have a unpacked version stored internally?
sourcepub fn unpacked(&self) -> Result<Arc<UnpackedFrameData>>
pub fn unpacked(&self) -> Result<Arc<UnpackedFrameData>>
Return the unpacked data.
This will lazily unpack if needed (and only once).
Returns Err
if failing to decode the packed data.
sourcepub fn write_into(
&self,
scope_collection: &ScopeCollection,
send_all_scopes: bool,
write: &mut impl Write
) -> Result<()>
pub fn write_into( &self, scope_collection: &ScopeCollection, send_all_scopes: bool, write: &mut impl Write ) -> Result<()>
source§impl FrameData
impl FrameData
sourcepub fn frame_index(&self) -> u64
pub fn frame_index(&self) -> u64
The index of this frame.
sourcepub fn range_ns(&self) -> (NanoSecond, NanoSecond)
pub fn range_ns(&self) -> (NanoSecond, NanoSecond)
The range in nanoseconds of the entire profile frame.
sourcepub fn duration_ns(&self) -> NanoSecond
pub fn duration_ns(&self) -> NanoSecond
The duration in nanoseconds of the entire profile frame.