-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Improve perf measurements of build_extern_trait_impl
#90363
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 37e56fa8115203f422fe7fef84fa285a3a072e20 with merge c759bedb91d5b1f6fe5cd357d5b17e6141d6485f... |
Before, it was only measuring one callsite of `build_impl`, and it incremented the call count even if `build_impl` returned early because the `did` was already inlined. Now, it measures all calls, minus calls that return early.
37e56fa
to
eb713d2
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit eb713d2 with merge e9fd48d4c67a3126ae9b2d3bc6ad81753457c689... |
☀️ Try build successful - checks-actions |
Queued e9fd48d4c67a3126ae9b2d3bc6ad81753457c689 with parent 4e0d397, future comparison URL. |
Finished benchmarking commit (e9fd48d4c67a3126ae9b2d3bc6ad81753457c689): comparison url. Summary: This benchmark run did not return any relevant changes. 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 led to changes in compiler perf. @bors rollup=never |
Hmm, when I added this it was intentional to only measure |
|
What would the downside be of measuring all uses though?
I would think the overhead of |
Sure, I mean, at the end of the day anything this detailed will probably want to use cachegrind instead. I'm find with either landing this or not. |
The two reasons I'm proposing this change are (1) I want more accurate execution count numbers and (2) IMO it's more consistent to measure all calls of |
@bors r+ rollup=never |
📌 Commit eb713d2 has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (a9f664f): comparison url. Summary: This benchmark run did not return any relevant changes. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
Before, it was only measuring one callsite of
build_impl
, and itincremented the call count even if
build_impl
returned early becausethe
did
was already inlined.Now, it measures all calls, minus calls that return early.