pub struct Phase {
pub index: usize,
pub start_ms: u64,
pub end_ms: u64,
pub stimulus: Option<StimulusEvent>,
pub metrics: PhaseMetrics,
pub changes: Vec<PhaseChange>,
pub per_cgroup: BTreeMap<String, PhaseCgroupStats>,
pub not_measured_window: bool,
}Expand description
A time window between two consecutive stimulus events.
Fields§
§index: usize§start_ms: u64§end_ms: u64§stimulus: Option<StimulusEvent>The stimulus event that starts this phase (None for the initial phase).
metrics: PhaseMetrics§changes: Vec<PhaseChange>Changes detected at this phase’s stimulus boundary.
per_cgroup: BTreeMap<String, PhaseCgroupStats>Per-cgroup raw telemetry for this phase, keyed by cgroup name. Carried
from crate::assert::PhaseBucket::per_cgroup on the
Self-via-from_phase_buckets path; empty on the monitor-only
Timeline::build path (which has no carriers). Rendered as a
per-cgroup sub-block by display-time reduction
(crate::assert::PhaseCgroupStats::off_cpu_summary etc.); never a
change-detection input (those are PhaseMetrics scalars only).
not_measured_window: boolTrue when (start_ms, end_ms) is the normalized (0, 0) of an ORPHAN
carrier (no measured host window) rather than a real window. Set in
phase_from_bucket by the orphan shape signature (0,0) + empty
metrics + non-empty per_cgroup (unique to
crate::assert::fold_guest_per_cgroup_into_host_buckets’s orphan arm).
The render shows “window not measured” instead of a misleading 0ms.
Always false on the Timeline::build path.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Phase
impl RefUnwindSafe for Phase
impl Send for Phase
impl Sync for Phase
impl Unpin for Phase
impl UnwindSafe for Phase
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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