我是否需要将我的应用程序定位到.net 4.6以利用RyuJIT ?



从宣布。net Framework 4.6来看,似乎暗示RyuJIT只适用于。net 4.6。

这是否意味着我需要将我的应用程序重新定位到。net 4.6以使RyuJIT生效?

简短的回答:no.

长话短说:使用调试器来确保你有新版本。首先用资源管理器查看运行时目录,导航到C:WindowsMicrosoft.NETFramework64v4.0.30319。你会发现这里有两个抖动,clrjit.dll是基于Ryujit项目的新抖动,compatjit.dll是遗留的x64抖动。

Project> Properties> Debug>勾选"启用本机代码调试选项"。使用Build选项卡并确保您已经删除了抖动强迫,"Prefer 32-bit"选项必须取消勾选,"Platform target"必须设置为AnyCPU。并使用Application选项卡选择框架目标。

使用Debug> Step Into开始调试。Debug> Windows> Modules显示加载的模块列表。在该列表中找到抖动dll,单击"Name"列标题以按名称排序。如果你看到compatjit.dll回来,那么你正在使用遗留抖动。请注意,您总是会看到clrjit.dll,它们都是在使用遗留抖动时加载的。

有意使用旧的x64抖动需要在HKLM或HKCUSoftwareMicrosoft .NETFramework注册表项或app.exe.config文件项中使用COMPLUS_useLegacyJit环境变量或useLegacyJit值:

<runtime>
  <useLegacyJit enabled="1"/>
</runtime>

最新更新