-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Small performance wins for Rc & Arc #113156
Small performance wins for Rc & Arc #113156
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
⌛ Trying commit f7fcb93df6891e3b50e82a156a1b033a27b4d60f with merge 75d9a85e6d2bc257dee9d3c14a06743525de77ff... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (75d9a85e6d2bc257dee9d3c14a06743525de77ff): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 661.126s -> 661.703s (0.09%) |
f7fcb93
to
51bf2ff
Compare
This comment has been minimized.
This comment has been minimized.
040c243
to
d9e4868
Compare
This comment has been minimized.
This comment has been minimized.
d9e4868
to
9719905
Compare
ff60310
to
9719905
Compare
Some preliminary testing indicated that there are potential gains to be made with `Rc` and `Arc`. Add `#[inline]`s to help improve performance.
Add some line breaks where they were missing between blocks.
9719905
to
864445b
Compare
Okay, I cleaned this up so it should be mergable, so I'll mark it ready for review. The changes here should be about the same as what produced the perf results above. The performance wins are fairly significant, but the binary size increases are also notable. I'll leave it up to the reviewer what the call is on this. This may merit a perf rerun since the base changed significantly (the above run included adding the allocator API changes, since then the Arc Allocator API has been merged). See also #114446 where I'm trying to figure out some inlining things for the layout calculation (but I will keep that PR separate from this one since that one touches more things) cc @TimDiekmann, this is the followup to adding the allocator API |
@bors try @rust-timer queue |
⌛ Trying commit 864445b with merge 0ef074b4e9cbe42f2c6a4e5f3c529e371fdae41f... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
It looks like perf maybe didn’t get queued, could you retry @Mark-Simulacrum? |
@rust-timer build 0ef074b4e9cbe42f2c6a4e5f3c529e371fdae41f |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (0ef074b4e9cbe42f2c6a4e5f3c529e371fdae41f): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 651.433s -> 652.417s (0.15%) |
Thanks @Kobzol Well, this time around the results seem a lot more like noise |
I think this isn't worth it given the largely noise results here. Thanks for trying it! |
This branch is a perf experiment based on #89132 (Allocator API for Rc and Arc) with more inline indicators.
The results were successful so after #89132 lands, I will rebase this and open for review.