【问题标题】:Do I need to target my application to .NET 4.6 to take advantage of RyuJIT?我是否需要将我的应用程序定位到 .NET 4.6 才能利用 RyuJIT?
【发布时间】:2015-10-10 08:29:51
【问题描述】:

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

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

【问题讨论】:

标签: .net .net-4.6 ryujit


【解决方案1】:

简短回答:不。

长答案:使用调试器确保您拥有新版本。首先使用资源管理器查看运行时目录,导航到 C:\Windows\Microsoft.NET\Framework64\v4.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,单击“名称”列标题以按名称排序。如果您看到compatjit.dll,那么您使用的是旧版抖动。请注意,您总是会看到 clrjit.dll,它们都会在使用旧版抖动时加载。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2021-05-10
    • 2015-05-03
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    相关资源
    最近更新 更多