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

Compilation/intellisense: dotnet9 much slower than netstandard2.0 (with timings) #18225

Open
charlesroddie opened this issue Jan 10, 2025 · 4 comments
Labels
Impact-High (Internal MS Team use only) Describes an issue with extreme impact on existing code. Needs-Repro Regression Theme-Performance
Milestone

Comments

@charlesroddie
Copy link
Contributor

Timings:
Image

The projects explicitly type all type arguments and all inputs but not all outputs (which could be added if it helps compilation time) and generally don't do anything fancy. They do use some overloaded methods which can be removed if it helps performance, and some op_Implicits (which are too convenient to remove).

Related issue: #17501

Some work being done in #18190

@vzarytovskii
Copy link
Member

This is caused by #17501, fix is disabled for tooling because of the lack of proper caching solution in compiler.

@T-Gro
Copy link
Member

T-Gro commented Jan 13, 2025

Hi @charlesroddie , could you please attach a code sample of where this happens as well, to get a real-life test captured as part of a solution?

This is also to confirm the standing hypothesis of this being caused by big interface hierarchies, such as those added by INumber and other interfaces with static abstracts (which are not existing in ns2.0)

@T-Gro T-Gro added Regression Theme-Performance Impact-High (Internal MS Team use only) Describes an issue with extreme impact on existing code. Needs-Repro and removed Needs-Triage labels Jan 20, 2025
@charlesroddie
Copy link
Contributor Author

@T-Gro is it possible to get the information from an existing codebase. Right now I can try any instructions or given access if needed.

If a separate reproduction is needed I can try to do that in a few weeks but will take longer and would probably involve codegenning different types of F# code until unexpectedly long compilation time is found.

@T-Gro
Copy link
Member

T-Gro commented Jan 27, 2025

Anything that can be used while measuring solution(s) against it. If it is proprietary, then one-time access for evaluation would also good. Anything shareable which could stay in this repo as a test against regressions would be even better.

@T-Gro T-Gro modified the milestones: Backlog, January 2025, February 2025 Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Impact-High (Internal MS Team use only) Describes an issue with extreme impact on existing code. Needs-Repro Regression Theme-Performance
Projects
Status: New
Development

No branches or pull requests

3 participants