Skip to content

Conversation

@AlexDelepine
Copy link
Contributor

Summary of the changes

We are experimenting with a mechanism to asynchronously generate important NGEN images immediately after VS setup in 17.14, and to do this are adjusting NGEN priorities of assemblies, so that the most important ones, based on JIT time, usage and user observable scenarios, are generated first. These changes are as a result of that analysis. If you have any questions on this, feel free to reach out to me or the VS Perf and Rel team.

Changes made:

  • Microsoft.CodeAnalysis.Razor.Compiler.dll going from ngen priority 3 to priority 1
  • Microsoft.VisualStudio.LanguageServices.Razor.dll going from ngen priority 3 to priority 1
  • Microsoft.AspNetCore.Razor.Utilities.Shared.dll going from ngen priority 3 to priority 2

@AlexDelepine AlexDelepine requested a review from a team as a code owner March 26, 2025 23:38
Copy link
Member

@davidwengier davidwengier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Comment on lines 229 to 233
<Ngen>$(Ngen)</Ngen>
<NgenApplication>$(NgenApplication)</NgenApplication>
<NgenArchitecture>$(NgenArchitecture)</NgenArchitecture>
<NgenPriority>$(NgenPriority)</NgenPriority>
<NgenPriority>1</NgenPriority>
</VSIXSourceItem>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strictly speaking this change makes all RazorNgendVSIXSourceItem items be priority 1. As it happens, there is only one of those left after some other changes, so I think we should just get rid of the entire RazorNgendVSIXSourceItem concept, above this. I think lines 226 to 233 could just be replaced with:

<VSIXSourceItem Include="$(OutputPath)Microsoft.CodeAnalysis.Razor.Compiler.dll">
  <NgenPriority>1</NgenPriority>
</VSIXSourceItem>

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got rid of the RazorNgendVSIXSourceItem, I also had to add a <Ngen>true</Ngen> in there, but the output is now identical to what it was with RazorNgendVSIXSourceItem .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants