Skip to content

Instantly share code, notes, and snippets.

@pnkfelix
Created July 15, 2020 23:36
Show Gist options
  • Save pnkfelix/a033f84257ecb3a8030d1ad13ef50237 to your computer and use it in GitHub Desktop.
Save pnkfelix/a033f84257ecb3a8030d1ad13ef50237 to your computer and use it in GitHub Desktop.
## Some non-debug timings
touch ../src/librustc_middle/lib.rs && time infer-remake.sh stage1
touch ../src/librustc_middle/lib.rs && time infer-remake.sh notidy nocheck stage1
> real 2m2.034s
> user 27m5.253s
> sys 12m0.467s
> real 2m1.797s
> user 27m9.395s
> sys 12m23.794s
> real 2m2.364s
> user 27m10.960s
> sys 12m22.676s
touch ../src/librustc_middle/lib.rs && time infer-remake.sh notidy nocheck keep0 stage1
> real 0m26.016s
> user 0m54.010s
> sys 0m8.177s
> real 0m26.037s
> user 0m54.090s
> sys 0m7.805s
> real 0m26.057s
> user 0m54.007s
> sys 0m8.078s
touch ../src/librustc_middle/mir/mod.rs && time infer-remake.sh notidy nocheck stage1
> real 2m2.450s
> user 27m4.326s
> sys 11m52.220s
> real 2m2.426s
> user 27m18.808s
> sys 12m8.729s
> real 2m2.872s
> user 27m12.354s
> sys 12m9.106s
touch ../src/librustc_middle/mir/mod.rs && time infer-remake.sh notidy nocheck keep0 stage1
> real 0m26.172s
> user 0m54.044s
> sys 0m8.158s
> real 0m26.219s
> user 0m54.282s
> sys 0m8.270s
So, the time is cut roughly in half. That's exciting.
* With non-debug build, rustc_middle is taking 14 seconds to build. (So running time is scaled by 7/10)
* Outliers (timings > 1sec):
time: 1.192; rss: 567MB rustc_middle, expand_crate
time: 1.192; rss: 567MB rustc_middle, macro_expand_crate
time: 1.784; rss: 611MB rustc_middle, configure_and_expand
time: 1.083; rss: 1294MB rustc_middle, misc_checking_3
time: 6.572; rss: 1888MB rustc_middle, monomorphization_collector_graph_walk
time: 1.237; rss: 2016MB rustc_middle, partition_and_assert_distinct_symbols
time: 9.027; rss: 2059MB rustc_middle, codegen_crate
time: 14.109; rss: 1007MB total for rustc_middle
## Some (debug) timings
Note that this is only touching files, not modifying them, so it is either near best case or unrealistic,
since in practice when you rebuild you make an edit, and I think the incremental system is going to hash
stuff so that it won't redo certain kinds of work.
* Even so, rustc_middle is takikng 20 seconds to build.
* Outliers (timings > 1sec):
time: 1.629; rss: 595MB rustc_middle, expand_crate
time: 1.629; rss: 595MB rustc_middle, macro_expand_crate
time: 2.399; rss: 639MB rustc_middle, configure_and_expand
time: 1.494; rss: 1337MB rustc_middle, misc_checking_3
time: 9.219; rss: 1972MB rustc_middle, monomorphization_collector_graph_walk
time: 1.705; rss: 2142MB rustc_middle, partition_and_assert_distinct_symbols
time: 1.030; rss: 2299MB rustc_middle, encode_query_results
time: 1.185; rss: 2305MB rustc_middle, incr_comp_serialize_result_cache
time: 1.242; rss: 2172MB rustc_middle, incr_comp_persist_result_cache
time: 1.643; rss: 2172MB rustc_middle, serialize_dep_graph
time: 12.910; rss: 2172MB rustc_middle, codegen_crate
time: 20.043; rss: 1086MB total for rustc_middle
* Obvious culprits worth double-checking: monomorphization_collector_graph_walk and codegen_crate.
* Also, I should redo this run on a pure (non-dbg) opt build.
```
touch ../src/librustc_middle/lib.rs && time infer-remake.sh stage1
touch ../src/librustc_middle/lib.rs && time infer-remake.sh notidy nocheck stage1
> real 4m28.023s
> user 39m10.793s
> sys 13m49.381s
> real 3m50.542s
> user 37m42.963s
> sys 13m43.560s
> real 3m51.870s
> user 37m32.821s
> sys 13m21.657s
touch ../src/librustc_middle/lib.rs && time infer-remake.sh notidy nocheck keep0 stage1
> real 0m58.036s
> user 1m31.849s
> sys 0m19.924s
> real 0m57.752s
> user 1m31.483s
> sys 0m19.983s
> real 0m57.754s
> user 1m31.963s
> sys 0m19.695s
touch ../src/librustc_middle/mir/mod.rs && time infer-remake.sh notidy nocheck stage1
> real 3m32.358s
> user 37m16.834s
> sys 13m32.609s
> real 3m33.000s
> user 37m9.659s
> sys 13m24.636s
> real 3m32.693s
> user 37m14.624s
> sys 13m26.652s
touch ../src/librustc_middle/mir/mod.rs && time infer-remake.sh notidy nocheck keep0 stage1
> real 0m58.144s
> user 1m32.703s
> sys 0m20.047s
> real 0m57.843s
> user 1m32.194s
> sys 0m20.141s
> real 0m58.265s
> user 1m32.319s
> sys 0m20.020s
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment