我想了解如何配置我想使用的 JIT 类型。
比如说,我知道有 3 种类型的 JIT(Pre、Econo 和 Normal)。但是有以下奇怪的问题。
.NET 在部署服务器中运行的默认 JIT 是什么?
如果默认设置正常,我们是否可以灵活地更改设置以使用 pre 或 econo。如果是这样,我可以在哪里更改它?
不确定,如果此设置在 machine.config 或其他什么?
最佳答案
我以前从未听说过“Econo jit”。我确实看到了谷歌链接,它们都指向谈论 .NET 1.x 的旧文章。 “econo”部分似乎是通过不优化生成的机器代码和跳过 IL 验证来实现的。
自 .NET 2.0 以来,此选项肯定不再存在。只有一种类型的抖动,IL 总是被验证,但可以关闭优化。就像在程序的调试版本中一样,[Debuggable] 属性控制它。抖动有不同的种类,Microsoft 提供的抖动可以针对 x86、x64 或 ARM 处理器。但这是一个逻辑上的区别,不同的处理器需要不同的机器代码。抖动选择是自动的。关闭优化毫无意义。
“Pre jit”仍然存在,您使用 ngen.exe 预编译程序集。它使用与在运行时生成代码的抖动完全相同的抖动。它可以缩短程序的热启动时间,但它并不总是最好的解决方案,因为生成的代码效率不高并且会减慢冷启动速度。使用 ngen.exe 需要编写一个安装程序,在安装时在用户机器上运行它。
关于c# - 如何更改我要使用的 JIT 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11394345/