-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
check_mod_item_types query times regressed bigly #65147
Comments
Interestingly, removing In fact, switching on |
I don't have a lot more information to put here, except that the compile time seems to increase with the size of a particular call graph of async fns (it's not binary slow/fast, but different gradations of slow). This continues to make it hard to minimize. I did some profiling, and noticed a lot of time being spent collecting items in See this chat thread for more details, and some flame graphs of the profiles I ran. |
visited for T-compiler triage. Assigning P-high based on labels applied by niko as part of async-await triage. Removing nomination label too. |
Optimize `try_expand_impl_trait_type` A lot of time was being spent expanding some large `impl Future` types in fuchsia. This PR takes the number of types being visited in one expansion from >3 billion to about a thousand, and eliminates the compile time regression in #65147 (in fact, compile times are better than they were before). Thanks to @matthewjasper for suggesting this change. Fixes #65147. r? @matthewjasper,@nikomatsakis
…sper Optimize `try_expand_impl_trait_type` A lot of time was being spent expanding some large `impl Future` types in fuchsia. This PR takes the number of types being visited in one expansion from >3 billion to about a thousand, and eliminates the compile time regression in rust-lang#65147 (in fact, compile times are better than they were before). Thanks to @Mark-Simulacrum for helping identify the issue and to @matthewjasper for suggesting this change. Fixes rust-lang#65147. r? @matthewjasper,@nikomatsakis
There is a crate inside of Fuchsia whose compile times increased from ~500ms to ~120s in the last month of Rust compiler updates. It hasn't been easy so far to provide a minimal example, but I will keep working at it.
Some bisecting revealed that it actually consisted of two performance regressions, both affecting the time spent in
check_mod_item_types
:The first regression occurred in the rollup #64354, and the second occurred sometime in the two weeks between changes 66bf391..0221e26.
There is heavy use of async/await in the code, and I've identified a couple places where taking out
.await
makes the compile finish right away. This makes me suspect #64292 for the first regression, but I'm not sure.I'll update the issue as I have more information.
The text was updated successfully, but these errors were encountered: