pub struct ForegroundProbeTiming {
pub queued: Duration,
pub lock_wait: Duration,
pub walk: Duration,
}Expand description
Where the wall-clock time in one foreground probe actually went.
A single total for observe_foreground mixes three things that lead to
opposite conclusions about the same measurement: half a second of
queued is idle waiting behind unrelated work on tokio’s blocking pool,
while half a second of walk is this probe genuinely burning CPU on the
OS process-table walk. walk is the only field of the three that is
unambiguously CPU spent by this probe.
Fields§
§queued: DurationCall until the blocking closure began running: tokio’s blocking-pool queue. Waiting, not work – a PTY read parked on a pool thread can put a probe behind it without either of them burning a cycle.
lock_wait: DurationInside the closure, waiting for the PTY mutex, which live PTY I/O also holds.
walk: DurationThe OS process-table walk itself. The only one of the three that is unambiguously CPU this probe spent.
Trait Implementations§
Source§impl Clone for ForegroundProbeTiming
impl Clone for ForegroundProbeTiming
Source§fn clone(&self) -> ForegroundProbeTiming
fn clone(&self) -> ForegroundProbeTiming
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more