-
Notifications
You must be signed in to change notification settings - Fork 790
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
Add mibc/profile for R2R FSC/FSI for faster startup #13328
Comments
Native profile is less relevant here, although, it might uncover some scenarios we don't hit often when we run C# programs and optimize them inside JIT/VM/GC. I assume the primary target here is to make FSC compiler faster - for that we need a scenario from you where FSC compiles a program so then we can run that scenario on our pipeline, generate an mibc and publish it to a nuget so you can just download it and use during "dotnet publish" for FSC (ideally, with CompositeR2R mode) |
Got it, thanks.
Yes, faster startup times for compiler, and, most importantly, interactive ( |
We will also need to understand how does it affect, |
We used to avoid instrumenting methods with explicit tails calls but then decided to allow it - dotnet/runtime#58632 so should be fine |
PR: https://dev.azure.com/dnceng/internal/_git/dotnet-optimization/pullrequest/25175 I played with the resulting MIBC locally - it doesn't give much, but it works good with R2RComposite, e.g. I was measuring how long it takes to build https://github.com/giraffe-fsharp/Giraffe for(;;) { Measure-Command { C:\prj\fsharp\artifacts\bin\fsc\Release\net7.0\win-x64\publish\fsc.exe "@girafe.rsp" }} best results:
Around 30% improvement! 🙂 also, hit a runtime issue while I was collecting MIBC: dotnet/runtime#74295 |
We should consider adding both managed and native mibc/profiles for
fsc
andfsi
:dotnet-optimization
(@EgorBo can assist with that):@EgorBo Have I missed anything?
The text was updated successfully, but these errors were encountered: