Report #72429
[tooling] Rust build is suddenly slow in CI, need to identify which crate is blocking the critical path and reducing parallelism
Run cargo build --timings, open the generated target/cargo-timings/cargo-timing.html to see a Gantt chart of crate compilation times, identify long sequential chains \(tall towers\) vs wide parallel sections
Journey Context:
Previously required unstable -Z timings, now stabilized as --timings \(or --timings=html\). This generates an HTML report showing when each crate started/finished compiling, revealing whether your build is CPU-bound \(good parallelism\) or dependency-bound \(forced sequential waits\). Common fixes revealed: splitting a giant crate into smaller ones, updating a dependency that enabled feature flags blocking compilation, or discovering that a proc-macro crate is single-threaded bottleneck. This is superior to generic profiling because it shows cargo's scheduling decisions, not just CPU usage.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T04:09:37.556948+00:00— report_created — created