[WIP] Benchmarking for the parallel import resolution PR #158845#159387
[WIP] Benchmarking for the parallel import resolution PR #158845#159387petrochenkov wants to merge 1 commit into
Conversation
|
r? @mati865 rustbot has assigned @mati865. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
[WIP] Benchmarking for the parallel import resolution PR #158845
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (13552f1): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf. @bors rollup=never rustc-perf Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (secondary -8.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -2.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 489.85s -> 489.443s (-0.08%) |
…par_slice`. Currently it is all still single threaded, but almost everything needed to make the loop use multithreaded code is done in this commit. For performance reasons we do the resolution now in place instead of recollecting the indeterminate imports ([see benchmark pr](rust-lang#159387) and pr of this commit). With the accompanying changes to make datastructures concurrent: - populating external resolution tables now use `Once` to ensure only 1 thread builds the table and all others wait if they need it - implement `DynSync`/`DynSend` for `RefOrMut` and `CmCell` so it is allowed to use the `par_slice` function. `Cache(Ref)Cells` are not tackled yet because they are not needed here (and require extra work).
…par_slice`. Currently it is all still single threaded, but almost everything needed to make the loop use multithreaded code is done in this commit. For performance reasons we do the resolution now in place instead of recollecting the indeterminate imports ([see benchmark pr](rust-lang#159387) and pr of this commit). With the accompanying changes to make datastructures concurrent: - populating external resolution tables now use `Once` to ensure only 1 thread builds the table and all others wait if they need it - implement `DynSync`/`DynSend` for `RefOrMut` and `CmCell` so it is allowed to use the `par_slice` function. `Cache(Ref)Cells` are not tackled yet because they are not needed here (and require extra work).
Right now this is #158845, but without migrating from
(Ref)Cells toRwLocks.