- Notifications
You must be signed in to change notification settings - Fork 14k
Open
Labels
A-mir-optArea: MIR optimizationsArea: MIR optimizationsA-mir-opt-inliningArea: MIR inliningArea: MIR inliningC-optimizationCategory: An issue highlighting optimization opportunities or PRs implementing suchCategory: An issue highlighting optimization opportunities or PRs implementing suchI-slowIssue: Problems and improvements with respect to performance of generated code.Issue: Problems and improvements with respect to performance of generated code.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.
Description
Hi, on linux x86, I'm seeing a 120+ms regression in wall time with 1.71, which is small but is noticeable when running the cli application as it is already quite fast.
1.70: frost$ hyperfine -w 5 "./target/release/frost info frost/tests/fixtures/test_large.bag" Benchmark 1: ./target/release/frost info frost/tests/fixtures/test_large.bag Time (mean ± σ): 580.8 ms ± 0.9 ms [User: 311.6 ms, System: 269.4 ms] Range (min … max): 579.7 ms … 582.2 ms 10 runs 1.71: Benchmark 1: ./target/release/frost info frost/tests/fixtures/test_large.bag Time (mean ± σ): 708.8 ms ± 4.9 ms [User: 447.1 ms, System: 261.6 ms] Range (min … max): 703.3 ms … 716.7 ms 10 runs ******************************************************************************** Regression in 915aa06700af4a2363639bae70201cd7387470ad ******************************************************************************** Attempting to search unrolled perf builds ERROR: couldn't find perf build comment ================================================================================== = Please file this regression report on the rust-lang/rust GitHub repository = = New issue: https://github.com/rust-lang/rust/issues/new = = Known issues: https://github.com/rust-lang/rust/issues = = Copy and paste the text below into the issue report thread. Thanks! = ================================================================================== searched nightlies: from nightly-2023-01-01 to nightly-2023-09-16 regressed nightly: nightly-2023-04-24 searched commit range: https://github.com/rust-lang/rust/compare/b628260df0587ae559253d8640ecb8738d3de613...7f94b314cead7059a71a265a8b64905ef2511796 regressed commit: https://github.com/rust-lang/rust/commit/915aa06700af4a2363639bae70201cd7387470ad <details> <summary>bisected with <a href='https://github.com/rust-lang/cargo-bisect-rustc'>cargo-bisect-rustc</a> v0.6.7</summary> Host triple: x86_64-unknown-linux-gnu Reproduce with: ```bash cargo bisect-rustc --script=./bench.sh --start=2023-01-01 --end=2023-09-16 --preserve The PR in question does have a perf signoff after weighing the trade-off, but I am raising the issue in case further investigation could lead to more optimizations.
The project is pretty messy but I have steps on how to benchmark here dantheman3333/frost#33.
A differential flamegraph shows flatmap's next has taken a hit. I am unsure if this is an aggregate view of all of the nexts or if this is a specific call site - is it possible to get line numbers from this?
I am unsure of how to proceed from here but I would love to learn if anyone has tips
Metadata
Metadata
Assignees
Labels
A-mir-optArea: MIR optimizationsArea: MIR optimizationsA-mir-opt-inliningArea: MIR inliningArea: MIR inliningC-optimizationCategory: An issue highlighting optimization opportunities or PRs implementing suchCategory: An issue highlighting optimization opportunities or PRs implementing suchI-slowIssue: Problems and improvements with respect to performance of generated code.Issue: Problems and improvements with respect to performance of generated code.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.