Add a RUSTC_TIME env var to time rust crates during bootstrap#58508
Add a RUSTC_TIME env var to time rust crates during bootstrap#58508bors merged 1 commit intorust-lang:masterfrom
Conversation
|
Why is this an environment variable rather than a flag to rustbuild? |
|
Ping from triage, @Zoxc, thoughts on comments thus far? |
Mostly because adding a flag is strictly more work and rustbuild already accepts environment variables as input. |
|
ping from triage @Zoxc any updates on this? is this still blocked on Cargo? |
|
Ping from triage @Zoxc: The cargo PR hasn't been updated in quite a while, do you have an rough estimate when this PR will be ready? |
|
The cargo PR will have to get merged, then we'll have to wait for it to land on beta. Probably will take a while. |
|
☔ The latest upstream changes (presumably #61494) made this pull request unmergeable. Please resolve the merge conflicts. |
|
Unblocking and marking as waiting-on-author as the relevant PR has been closed (with a comment that implies that maybe this is ready to move forward?) |
|
Rebased and unblocked. r? @oli-obk |
oli-obk
left a comment
There was a problem hiding this comment.
r=me with sanity assertion
|
|
||
| // Get the name of the crate we're compiling, if any. | ||
| let maybe_crate_name = args.windows(2) | ||
| .find(|a| &*a[0] == "--crate-name") |
There was a problem hiding this comment.
please add an assert for checking whether the args contain --crate-name=something, since that will get silently ignored here.
There was a problem hiding this comment.
I'd rather not add more noise to this file.
|
FWIW I think that we shouldn't do this, but I won't block this PR based on my concerns, which largely center around -Ztime-passes being essentially deprecated, though not entirely useless, in favor of -Zself-profile. But I get why you'd want this so I won't stop you, especially because the impact on rustbuild is minimal. |
|
We can remove the changes of this PR once @bors r+ |
|
📌 Commit a0c7984 has been approved by |
Add a RUSTC_TIME env var to time rust crates during bootstrap Blocked on rust-lang/cargo#6674 r? @michaelwoerister Example for rustc with #58507: ``` time: 0.460; rss: 94MB parsing time: 0.000; rss: 94MB attributes injection time: 0.000; rss: 94MB recursion limit time: 0.000; rss: 94MB crate injection time: 0.000; rss: 94MB plugin loading time: 0.000; rss: 94MB plugin registration time: 0.044; rss: 94MB pre ast expansion lint checks time: 1.999; rss: 316MB expand crate time: 0.000; rss: 316MB check unused macros time: 2.000; rss: 316MB expansion time: 0.000; rss: 316MB maybe building test harness time: 0.053; rss: 316MB AST validation time: 0.000; rss: 316MB maybe creating a macro crate time: 1.515; rss: 397MB name resolution time: 0.122; rss: 397MB complete gated feature checking time: 0.655; rss: 546MB lowering ast -> hir time: 0.136; rss: 550MB early lint checks time: 0.117; rss: 540MB validate hir map time: 0.606; rss: 540MB indexing hir time: 0.000; rss: 480MB load query result cache time: 0.000; rss: 478MB dep graph tcx init time: 0.000; rss: 478MB looking for entry point time: 0.001; rss: 478MB looking for plugin registrar time: 0.001; rss: 478MB looking for derive registrar time: 0.049; rss: 478MB loop checking time: 0.064; rss: 479MB attribute checking time: 0.166; rss: 484MB stability checking time: 0.699; rss: 566MB type collecting time: 0.006; rss: 566MB outlives testing time: 0.018; rss: 568MB impl wf inference time: 0.002; rss: 583MB unsafety checking time: 0.005; rss: 583MB orphan checking time: 0.227; rss: 583MB coherence checking time: 0.006; rss: 583MB variance testing time: 1.546; rss: 657MB wf checking time: 0.389; rss: 665MB item-types checking time: 13.999; rss: 837MB item-bodies checking time: 1.692; rss: 883MB rvalue promotion time: 0.067; rss: 883MB intrinsic checking time: 0.624; rss: 887MB match checking time: 0.246; rss: 889MB liveness checking time: 2.629; rss: 889MB misc checking time: 0.000; rss: 889MB borrow checking time: 16.754; rss: 1242MB MIR borrow checking time: 0.050; rss: 1242MB dumping chalk-like clauses time: 0.010; rss: 1242MB MIR effect checking time: 0.001; rss: 1242MB layout testing time: 0.829; rss: 1244MB privacy checking time: 0.183; rss: 1247MB death checking time: 0.100; rss: 1248MB unused lib feature checking time: 0.405; rss: 1250MB lint checking time: 1.518; rss: 1250MB misc checking time: 0.000; rss: 1250MB resolving dependency formats time: 2.928; rss: 1332MB write metadata time: 0.014; rss: 1332MB collecting roots time: 7.621; rss: 1488MB collecting mono items time: 7.635; rss: 1488MB monomorphization collection time: 0.557; rss: 1567MB codegen unit partitioning time: 27.971; rss: 2656MB codegen to LLVM IR time: 0.056; rss: 2656MB assert dep graph time: 0.000; rss: 2656MB serialize dep graph time: 195.414; rss: 2656MB codegen time: 0.000; rss: 329MB serialize work products time: 1.664; rss: 331MB running linker time: 1.965; rss: 331MB linking [RUSTC-TIMING] rustc test:false 950.103 ``` It doesn't really look like the times add up here.
|
☀️ Test successful - checks-travis, status-appveyor |
Tested on commit rust-lang/rust@289b78a. Direct link to PR: <rust-lang/rust#58508> 🎉 rls on windows: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).
Blocked on rust-lang/cargo#6674
r? @michaelwoerister
Example for rustc with #58507:
It doesn't really look like the times add up here.