从宣布 .NET Framework 4.6中读取,似乎暗示 RyuJIT 仅适用于 .NET 4.6。
这是否意味着我需要将我的应用程序重新定位到 .NET 4.6 才能使 RyuJIT 生效?
从宣布 .NET Framework 4.6中读取,似乎暗示 RyuJIT 仅适用于 .NET 4.6。
这是否意味着我需要将我的应用程序重新定位到 .NET 4.6 才能使 RyuJIT 生效?
简短的回答:没有。
长答案:使用调试器确保您拥有新版本。首先使用资源管理器查看运行时目录,导航到 C:\Windows\Microsoft.NET\Framework64\v4.0.30319。您会在那里找到两个抖动,clrjit.dll
一个是基于 Ryujit 项目的新抖动,一个compatjit.dll
是传统的 x64 抖动。
项目 > 属性 > 调试 > 勾选“启用本机代码调试选项”。使用 Build 选项卡并确保您已删除强制抖动,必须取消选中“Prefer 32-bit”选项,必须将“Platform target”设置为 AnyCPU。并使用 Application 选项卡选择框架目标。
使用 Debug > Step Into 开始调试。Debug > Windows > Modules 显示已加载模块的列表。在该列表中找到抖动 DLL,单击“名称”列标题以按名称排序。如果您compatjit.dll
回头看,那么您使用的是传统抖动。请注意,您总是会看到 clrjit.dll,当使用旧版抖动时,它们都会被加载。
使用旧版 x64 抖动有意需要 COMPLUS_useLegacyJit 环境变量或 HKLM 或 HKCU\Software\Microsoft\ .NETFramework 注册表项或 app.exe.config 文件条目中的 useLegacyJit 值:
<runtime>
<useLegacyJit enabled="1"/>
</runtime>