-
Notifications
You must be signed in to change notification settings - Fork 13k
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
passes: load defined_lib_features
query less
#100328
Conversation
Re-structure the stability checks for library features to avoid calling `defined_lib_features` for any more crates than necessary for each of the implications or local feature attributes that need validation.
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 5e2e478 with merge 96095a5802aa374bfa2bd3a9b036a36f1fe9d517... |
☀️ Try build successful - checks-actions |
Queued 96095a5802aa374bfa2bd3a9b036a36f1fe9d517 with parent cc4dd6f, future comparison URL. |
Finished benchmarking commit (96095a5802aa374bfa2bd3a9b036a36f1fe9d517): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking 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 Footnotes |
@davidtwco Looks great to me. Do you have an idea what might be causing the cycle-count regression in image incr-patched? |
r? @nnethercote
My educated guess would be that it is doing a little bit more work to avoid calling the queries most of the time. Instead of iterating over the library features we want to check (a small number of things), it iterates over all of the library features from a given crate (a larger number of things) and checks if any of those features is one we need to check. We do that for features in as few crates as possible, which avoids metadata queries. |
I suspect that's just noise. The significance factor is only 1.25x, which is only a little higher than 1x, which is the minimum required to show the result. If you click on "show non-relevant results" you see lots of other wins and losses for cycles, but they pretty much even out, with slightly more on the wins side. And |
I think it is, to do the new checks that #99212 added, we need to load |
@bors r+ |
☀️ Test successful - checks-actions |
Finished benchmarking commit (0068b8b): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Footnotes |
The improvements outweight the regressions, even in many non-relevant results. @rustbot label: +perf-regression-triaged |
Regressions look to be spurious as well; both graphs show that they're within margin of noise and recover ~immediately.
|
Hopefully addresses the perf regressions from #99212 (see #99905).
Re-structure the stability checks for library features to avoid calling
defined_lib_features
for any more crates than necessary for each of the implications or local feature attributes that need validation.r? @ghost (just checking perf at first)