Skip to content
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

[PERF] split dwarf benchmarking #96199

Closed

Conversation

davidtwco
Copy link
Member

A little perf benchmarking of Split DWARF: what impact does it have on compile times (incremental in particular), artefact sizes, etc.

r? @ghost

Signed-off-by: David Wood <david.wood@huawei.com>
@rustbot rustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Apr 19, 2022
@davidtwco
Copy link
Member Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 19, 2022
@bors
Copy link
Contributor

bors commented Apr 19, 2022

⌛ Trying commit eb62f83 with merge 292d5468b0b10257b2e4277ee906ab657c8308fd...

@rust-log-analyzer

This comment was marked as off-topic.

@bors
Copy link
Contributor

bors commented Apr 19, 2022

☀️ Try build successful - checks-actions
Build commit: 292d5468b0b10257b2e4277ee906ab657c8308fd (292d5468b0b10257b2e4277ee906ab657c8308fd)

@rust-timer
Copy link
Collaborator

Queued 292d5468b0b10257b2e4277ee906ab657c8308fd with parent d5ae66c, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (292d5468b0b10257b2e4277ee906ab657c8308fd): comparison url.

Summary:

  • Primary benchmarks: 🎉 relevant improvements found
  • Secondary benchmarks: mixed results
Regressions 😿
(primary)
Regressions 😿
(secondary)
Improvements 🎉
(primary)
Improvements 🎉
(secondary)
All 😿 🎉
(primary)
count1 2 10 14 45 16
mean2 0.8% 1.4% -6.4% -1.4% -5.5%
max 1.2% 1.7% -27.4% -3.8% -27.4%

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
@rustbot label: +S-waiting-on-review -S-waiting-on-perf -perf-regression

Footnotes

  1. number of relevant changes

  2. the arithmetic mean of the percent change

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Apr 19, 2022
Signed-off-by: David Wood <david.wood@huawei.com>
@davidtwco
Copy link
Member Author

I'm genuinely surprised that Split DWARF seems to have had a decent impact - I'm too used to my patches being damp squibs 😂

Lets try with packed debuginfo..

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 19, 2022
@bors
Copy link
Contributor

bors commented Apr 19, 2022

⌛ Trying commit 48a29bb with merge c9bc3fa6dbc6c5f5b54055ed79bf83f15b60352c...

@rust-log-analyzer

This comment was marked as outdated.

@bors
Copy link
Contributor

bors commented Apr 19, 2022

☀️ Try build successful - checks-actions
Build commit: c9bc3fa6dbc6c5f5b54055ed79bf83f15b60352c (c9bc3fa6dbc6c5f5b54055ed79bf83f15b60352c)

@rust-timer
Copy link
Collaborator

Queued c9bc3fa6dbc6c5f5b54055ed79bf83f15b60352c with parent e2661ba, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c9bc3fa6dbc6c5f5b54055ed79bf83f15b60352c): comparison url.

Summary:

  • Primary benchmarks: mixed results
  • Secondary benchmarks: mixed results
Regressions 😿
(primary)
Regressions 😿
(secondary)
Improvements 🎉
(primary)
Improvements 🎉
(secondary)
All 😿 🎉
(primary)
count1 8 31 8 20 16
mean2 4.2% 3.0% -7.7% -1.2% -1.8%
max 6.6% 6.1% -21.6% -2.1% -21.6%

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.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf +perf-regression

Footnotes

  1. number of relevant changes

  2. the arithmetic mean of the percent change

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Apr 19, 2022
@davidtwco
Copy link
Member Author

Much more mixed results from packed mode - we're losing out on some of the improvement from unpacked debuginfo, which is expected, it's always going to be strictly more work in packed mode, but I'd have hoped that it wouldn't be as much as it is - still enough for there to be some wins on larger benchmarks like ripgrep, but not enough for helloworld to be improved. I expect there's some low hanging fruit in thorin though, performance wasn't something we measured while building it.

@davidtwco davidtwco closed this Apr 19, 2022
@davidtwco davidtwco deleted the perf-experiment-split-dwarf branch April 19, 2022 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
perf-regression Performance regression. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants