如何强制 DotNet 框架使用 JIT 而不是 NGEN?
How do I force the DotNet Framework to use JIT instead of NGEN?
我正在调试与在进程中加载 DotNet Framework 程序集的本机图像相关的问题,例如System.Windows.Forms.ni.dll
我想停止加载这些原生图像。有人有什么想法吗?
另一个可能有用的场景是使用 SOS 或其他一些 WinDbg 扩展来管理代码。这些工具适用于托管代码,因此您不会不希望 NGEN 将 DotNet Framework dll 转换为本机图像。
参考:https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator
谢谢!
您可以通过将 COMPLUS_ZapDisable
环境变量设置为 1 来禁用 NGEN 图像加载。有了这个变量,.Net 应该加载原始程序集而不是本地图像。但它会减慢一切,因为 .Net 需要 JIT 框架程序集中的所有代码。
我正在调试与在进程中加载 DotNet Framework 程序集的本机图像相关的问题,例如System.Windows.Forms.ni.dll 我想停止加载这些原生图像。有人有什么想法吗?
另一个可能有用的场景是使用 SOS 或其他一些 WinDbg 扩展来管理代码。这些工具适用于托管代码,因此您不会不希望 NGEN 将 DotNet Framework dll 转换为本机图像。
参考:https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator
谢谢!
您可以通过将 COMPLUS_ZapDisable
环境变量设置为 1 来禁用 NGEN 图像加载。有了这个变量,.Net 应该加载原始程序集而不是本地图像。但它会减慢一切,因为 .Net 需要 JIT 框架程序集中的所有代码。