pub struct PhaseProfileSummary {Show 18 fields
pub hit_count: u64,
pub miss_count: u64,
pub parse_args_ns: u64,
pub build_context_ns: u64,
pub hash_source_ns: u64,
pub hash_headers_ns: u64,
pub depgraph_check_ns: u64,
pub request_cache_lookup_ns: u64,
pub cross_root_validate_ns: u64,
pub artifact_lookup_ns: u64,
pub write_output_ns: u64,
pub bookkeeping_ns: u64,
pub total_hit_ns: u64,
pub compiler_exec_ns: u64,
pub include_scan_ns: u64,
pub hash_all_ns: u64,
pub artifact_store_ns: u64,
pub total_miss_ns: u64,
}Expand description
Aggregate phase-timing totals from the daemon’s PhaseProfiler.
Totals are in nanoseconds. Divide hit-path totals by hit_count and
miss-path totals by miss_count to derive per-compile averages.
Use case: a perf harness collects this from a warm-rebuild session to
identify which phase dominates the warm-side wall time (e.g.
write_output_ns for artifact materialization vs depgraph_check_ns
for depgraph lookups).
Fields§
§hit_count: u64Number of cache-hit compiles that contributed to the hit-path totals.
miss_count: u64Number of cache-miss compiles that contributed to the miss-path totals.
parse_args_ns: u64Argument parsing.
build_context_ns: u64Build compile context + register with depgraph.
hash_source_ns: u64Source-file hash via the metadata cache fast path.
hash_headers_ns: u64Header hashes via the metadata cache fast path.
depgraph_check_ns: u64Depgraph verdict lookup.
request_cache_lookup_ns: u64Request-level cache lookup.
cross_root_validate_ns: u64Cross-root request validation.
artifact_lookup_ns: u64In-memory artifact-store lookup.
write_output_ns: u64Write cached outputs to disk (hardlink-first, copy fallback).
bookkeeping_ns: u64Stats recording + session bookkeeping.
total_hit_ns: u64Wall-clock total of the hit path.
compiler_exec_ns: u64Run the actual compiler subprocess.
include_scan_ns: u64Scan included files post-compile.
hash_all_ns: u64Hash all inputs for the artifact key.
artifact_store_ns: u64Persist the new artifact to disk.
total_miss_ns: u64Wall-clock total of the miss path.
Trait Implementations§
Source§impl Clone for PhaseProfileSummary
impl Clone for PhaseProfileSummary
Source§fn clone(&self) -> PhaseProfileSummary
fn clone(&self) -> PhaseProfileSummary
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 PhaseProfileSummary
impl Debug for PhaseProfileSummary
Source§impl<'de> Deserialize<'de> for PhaseProfileSummary
impl<'de> Deserialize<'de> for PhaseProfileSummary
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 From<PhaseTotals> for PhaseProfileSummary
impl From<PhaseTotals> for PhaseProfileSummary
Source§fn from(t: PhaseTotals) -> Self
fn from(t: PhaseTotals) -> Self
Source§impl PartialEq for PhaseProfileSummary
impl PartialEq for PhaseProfileSummary
Source§fn eq(&self, other: &PhaseProfileSummary) -> bool
fn eq(&self, other: &PhaseProfileSummary) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for PhaseProfileSummary
impl Serialize for PhaseProfileSummary
impl StructuralPartialEq for PhaseProfileSummary
Auto Trait Implementations§
impl Freeze for PhaseProfileSummary
impl RefUnwindSafe for PhaseProfileSummary
impl Send for PhaseProfileSummary
impl Sync for PhaseProfileSummary
impl Unpin for PhaseProfileSummary
impl UnsafeUnpin for PhaseProfileSummary
impl UnwindSafe for PhaseProfileSummary
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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