我是否需要将我的应用程序定位到.NET 4.6才能利用RyuJIT?

时间:2015-07-21 03:06:25

标签: .net .net-4.6 ryujit

Announcing .NET Framework 4.6读取,似乎暗示RyuJIT仅适用于.NET 4.6。

这是否意味着我需要将我的应用程序重新定位到.NET 4.6才能使RyuJIT生效?

1 个答案:

答案 0 :(得分:18)

简答:不。

答案很长:使用调试器确保您拥有新版本。首先看一下Explorer的运行时目录,导航到C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319。你会发现那里的两个抖动,clrjit.dll是基于Ryujit项目的新抖动,而compatjit.dll是传统的x64抖动。

项目>属性>调试>勾选"启用本机代码调试选项"。使用Build选项卡确保您已经删除了抖动强制,"首选32位"选项必须是未选中的,"平台目标"必须设置为AnyCPU。并使用“应用程序”选项卡选择框架目标。

使用调试> Step Into开始调试。调试> Windows>模块显示已加载模块的列表。找到该列表中的抖动DLL,单击" Name"列标题按名称排序。如果您看到compatjit.dll,那么您正在使用传统抖动。请注意,您始终会看到clrjit.dll,它们都会在使用旧版抖动时加载。

有意使用旧版x64抖动需要COMLUS_useLegacyJit环境变量或HKLM或HKCU \ Software \ Microsoft \ .NETFramework注册表项中的useLegacyJit值或app.exe.config文件条目:

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