#[non_exhaustive]pub struct FutureMetrics {
pub poll_count: u64,
pub total_poll_duration: Duration,
pub slow_poll_count: u64,
pub idle_count: u64,
pub total_idle_duration: Duration,
pub max_idle_duration: Duration,
pub first_poll_delay: Duration,
pub total_duration: Duration,
pub scheduled_count: u64,
pub total_scheduled_duration: Duration,
pub long_delay_count: u64,
}Expand description
Key metrics of a single instrumented future running within a larger task, as
captured by a FutureMonitor.
Unlike TaskMetrics, which aggregates across every future instrumented by
a TaskMonitor, these metrics describe just one future. Idle, poll, and
first-poll metrics are measured locally from that future’s own polls, so they
remain accurate even when the surrounding task interleaves other work.
Scheduling metrics are sampled from the root task’s TaskScheduling log
over the future’s lifetime (see FutureMonitor).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.poll_count: u64The number of times the future was polled.
total_poll_duration: DurationThe total time spent polling the future.
slow_poll_count: u64The number of polls that exceeded the monitor’s slow-poll threshold.
idle_count: u64The number of times the future idled, waiting to be awoken.
total_idle_duration: DurationThe total time the future spent idle, waiting on external events.
max_idle_duration: DurationThe longest single idle the future experienced.
first_poll_delay: DurationThe delay between the future being instrumented and its first poll.
total_duration: DurationThe wall-clock time from the future’s first poll to its completion.
scheduled_count: u64The number of times the underlying task was scheduled while this future was active.
This tracks the root task’s scheduling, not this future’s polls, so it
can exceed poll_count — for example when the future
is one branch of a select! and the task is scheduled to advance the
other branches.
total_scheduled_duration: DurationThe total scheduling delay the underlying task incurred while this future was active.
long_delay_count: u64The number of those scheduling delays that crossed the long-delay threshold.
Trait Implementations§
Source§impl Clone for FutureMetrics
impl Clone for FutureMetrics
Source§fn clone(&self) -> FutureMetrics
fn clone(&self) -> FutureMetrics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more