Use real ThinVec in StmtDebugInfos - #159975
Conversation
…get may_dangle drop impl This also enables TrustedLen impl, which is behind unstable flag, too, so this might have soundness or perf implications
|
(mostly empty) ThinVec has slightly different performance profile compared to our poor man's thin-vec ( I also changed some of the inline/outline combos in other methods, I kept it where it felt potentially useful, but I might have perturbed the performance profile because inlining is finicky. Long story short, I want to measure this to see whether these things make some noticable difference. @bors try @rust-timer queue Of course, non-empty variant has one less allocation, which is good, but this is extremely rare case, so I don't worry about perf changes there. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Use real ThinVec in StmtDebugInfos
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (168b7f9): comparison URL. Overall result: ❌ regressions - please read:Benchmarking 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. Next, please: If you can, justify the regressions found in this try perf run in writing along with @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 (primary -0.9%, secondary -4.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 4.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.0%, secondary -0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 489.176s -> 489.973s (0.16%) |
|
wow, I expected some perturbation but this is surprisingly negative. Let me check the update by itself. |
|
Let's backtrack a bit and keep the option in there for now @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.
Use real ThinVec in StmtDebugInfos
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
Actually, the results here are very similar to results in #159928 (comment), so this might actually be just the thin-vec update. Let's wait for that perf run to confirm this. |
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (d58d011): comparison URL. Overall result: ❌ regressions - please read:Benchmarking 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. Next, please: If you can, justify the regressions found in this try perf run in writing along with @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 -0.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 5.6%)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: 486.74s -> 496.176s (1.94%) |
|
☔ The latest upstream changes (presumably #160021) made this pull request unmergeable. Please resolve the merge conflicts by rebasing. |
This is now possible, because thin vec has may_dangle Drop impl. Depends on #159974