c# - 如何强制 DotNet 框架使用 JIT 而不是 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
谢谢!
解决方案
您可以通过将环境变量设置为 1 来禁用 NGEN 图像加载COMPLUS_ZapDisable
。使用此变量,.Net 应该加载原始程序集而不是本机图像。但它会减慢一切,因为 .Net 需要 JIT 框架程序集中的所有代码。
推荐阅读
- angular - 如何使用带有属性绑定的 ngbToolTip 添加新行
- firebase - 使用Provider for DI时如何根据Firebase Auth流修改Flutter Firebase Stream监听器?
- struct - 如何在强制使用“新”构造函数的同时使结构的所有字段公开可读
- react-native - React Native Tab Navigator 第一个选项卡默认聚焦
- java - 为单元测试创建模拟 - 改造
- javascript - html 在 jquery 完成执行之前加载一个新页面
- spring-boot - @RestController 不返回带有模型的 html
- angular - 选择标签的状态与 Angular 中的其他输入标签有何不同?
- node.js - 如何使用 mongoose refs 存储参考数据?
- bluetooth - BluetoothCtl 使用 Raspberry Pi 上的 python 子进程与 pin 配对