pub struct SessionStats {
pub duration_ms: u64,
pub compilations: u64,
pub hits: u64,
pub misses: u64,
pub non_cacheable: u64,
pub errors: u64,
pub time_saved_ms: u64,
pub unique_sources: u64,
pub bytes_read: u64,
pub bytes_written: u64,
pub phase_profile: Option<PhaseProfileSummary>,
}Expand description
Per-session statistics, returned when the session opted in to tracking.
Fields§
§duration_ms: u64Wall-clock duration of the session in milliseconds.
compilations: u64Total compile requests in this session.
hits: u64Cache hits in this session.
misses: u64Cache misses (cold compiles) in this session.
non_cacheable: u64Non-cacheable invocations (linking, preprocessing, etc.).
errors: u64Compilations that exited with non-zero status.
time_saved_ms: u64Estimated wall-clock time saved in milliseconds.
unique_sources: u64Distinct source files compiled.
bytes_read: u64Total artifact bytes served from cache.
bytes_written: u64Total artifact bytes stored into cache.
phase_profile: Option<PhaseProfileSummary>Daemon-wide phase-timing aggregate. None from older daemons that
don’t populate the field; Some from PROTOCOL_VERSION >= 9 daemons.
Aggregate is daemon-wide totals since the last
PhaseProfiler::reset() (which is called on Request::Clear). For
fresh-daemon perf scenarios this is equivalent to “this session’s
phase totals”. For long-lived daemons handling overlapping sessions,
totals cross-contaminate — that’s acceptable for v1 and revisited if
a real consumer needs per-session isolation.
Trait Implementations§
Source§impl Clone for SessionStats
impl Clone for SessionStats
Source§fn clone(&self) -> SessionStats
fn clone(&self) -> SessionStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SessionStats
impl Debug for SessionStats
Source§impl<'de> Deserialize<'de> for SessionStats
impl<'de> Deserialize<'de> for SessionStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for SessionStats
impl PartialEq for SessionStats
Source§fn eq(&self, other: &SessionStats) -> bool
fn eq(&self, other: &SessionStats) -> bool
self and other values to be equal, and is used by ==.