我试图了解如何配置我想要使用的JIT类型.
说,我知道有3种类型的JIT(Pre,Econo和Normal).但是有以下奇怪的问题.
.NET在部署服务器中运行的默认JIT是什么?
如果默认设置正常,我们是否可以灵活地更改设置以使用pre或econo.如果是这样我可以改变这个?
不确定,如果此设置在machine.config或其他什么?
我之前从未听说过"Econo jit".我确实看到谷歌链接,他们都指向谈论.NET 1.x的旧文章."econo"部分似乎是通过不优化生成的机器代码和跳过IL验证来实现的.
从.NET 2.0开始,这个选项肯定不存在了.只有一种类型的抖动,IL总是被验证,但优化可以关闭.就像在程序的Debug构建中一样,[Debuggable]属性控制它.有各种各样的抖动,微软提供的可以瞄准x86,x64或ARM处理器.但这是一个逻辑上的区别,不同的处理器需要不同的机器代码.抖动选择是自动的.关闭优化没有多大意义.
"Pre jit"仍然存在,您使用ngen.exe预编译程序集.它使用与在运行时生成代码的抖动完全相同的抖动.它改善了程序的热启动时间,它并不总是最好的解决方案,因为生成的代码不是那么高效并且减慢了冷启动.使用ngen.exe需要编写一个安装程序,在安装时在用户的计算机上运行它.