-
Notifications
You must be signed in to change notification settings - Fork 4k
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 binding redirects for System.ValueTuple and System.Xml.ReaderWriter #21832
Conversation
@jaredpar @tmat @dotnet/roslyn-compiler for review. |
👍 |
Test windows_debug_vs-integration_prtest please |
@agocke Can you also take a look? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Merging per thread with @natidea |
Got some update from AlexG. It turns out the root cause is different than we thought. It was not an ngen problem per-se, but a problem with the config produced by VS which drives the ngen'ing process. That config differed from that of the compiler, so the compiler was not running the ngen'ed image. |
This is a mitigation for https://devdiv.visualstudio.com/DevDiv/_workitems/edit/467584
The issue is that when you install 4.7.1 after installing VS, the binaries that depend on "any facade that we have either introduced or that we have changed in 4.7.1" should be ngen'ed again, but they are not.
The impact is that the compiler (VBCSCompiler.exe, csc.exe, etc) is JIT'ed on every run, resulting is significant performance degradation (50%) which RPS caught.
This PR for 15.3 preview 2 adds binding redirects (without changing the version of the assemblies selected) as a mitigation. We verified those manually.
The binding redirects are shown below. They get added to 5 core binaries (csi, vbi, csc, vbc, VBCSCompiler) and also InteractiveHost.