feat(io): open-time breakdown log
Phase 5.2. Time each open phase — parse, purge, derived-cache build on the loader thread, plus xref resolve on the UI thread — and emit a breakdown line on open completion: parse 1240ms · purge 80ms · caches 340ms · xref 60ms · total 1820ms Makes open-time regressions (and the wins from 1.1 / 2.4) visible at a glance. Timings ride back on DerivedCaches; total is wall time from the Open click to post-xref. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
70702d063f
commit
997538a67a
4 changed files with 42 additions and 2 deletions
|
|
@ -104,6 +104,18 @@ pub struct DerivedCaches {
|
|||
/// Reported back to the UI so the user knows when a file had parser-junk
|
||||
/// entities silently dropped.
|
||||
pub corrupt_dropped: usize,
|
||||
/// Background-thread open-phase timings in milliseconds (parse, purge,
|
||||
/// derived-cache build). Filled in by `open_path_with_phase`; surfaced in
|
||||
/// the open-complete breakdown log so open-time regressions are visible.
|
||||
pub timings: OpenTimings,
|
||||
}
|
||||
|
||||
/// Wall-clock breakdown of the file-open phases, in milliseconds.
|
||||
#[derive(Debug, Clone, Copy, Default)]
|
||||
pub struct OpenTimings {
|
||||
pub parse_ms: u32,
|
||||
pub purge_ms: u32,
|
||||
pub caches_ms: u32,
|
||||
}
|
||||
|
||||
/// Build hatch / image / mesh caches from a document without needing `&mut Scene`.
|
||||
|
|
@ -237,6 +249,7 @@ pub fn build_derived_caches(doc: &CadDocument) -> DerivedCaches {
|
|||
images,
|
||||
meshes,
|
||||
corrupt_dropped: 0,
|
||||
timings: OpenTimings::default(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue