-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Use Set instead of Vec in transitive_relation #103214
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
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 04ab19fbde3eb5cc061ff6b026cc1b542d0c400d with merge cfee159701a9bf8017cebf2b31f22fae454b0c54... |
☀️ Try build successful - checks-actions |
Queued cfee159701a9bf8017cebf2b31f22fae454b0c54 with parent a24a020, future comparison URL. |
Finished benchmarking commit (cfee159701a9bf8017cebf2b31f22fae454b0c54): comparison URL. Overall result: ✅ improvements - no 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. @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.
Footnotes |
Tbh the |
This is a perf improvement so r=me unless you want to address other comments like #103214 (comment). |
The potential perf improvement for |
@bors r=petrochenkov |
☀️ Test successful - checks-actions |
Finished benchmarking commit (4b8f431): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression 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.
CyclesThis benchmark run did not return any relevant results for this metric. Footnotes |
Use Set instead of Vec in transitive_relation Helps with rust-lang#103195. It doesn't fix the underlying quadraticness but it makes it _a lot_ faster to an extent where even doubling the amount of nested references still takes less than two seconds (50s on nightly). I want to see whether this causes regressions (because the vec was usually quite small) or improvements (as lookup for bigger sets is now much faster) in real code.
Helps with #103195. It doesn't fix the underlying quadraticness but it makes it a lot faster to an extent where even doubling the amount of nested references still takes less than two seconds (50s on nightly).
I want to see whether this causes regressions (because the vec was usually quite small) or improvements (as lookup for bigger sets is now much faster) in real code.