【问题标题】:How do I verify that ryujit is jitting my app?如何验证 ryujit 是否在 jitting 我的应用程序?
【发布时间】:2014-04-20 17:58:35
【问题描述】:

我已经为 .NET RyuJit 安装了新的 Jit 编译器,并按照安装文档中的说明在 regedit 中的 .NetFramework 中设置了 AltJit=* 键。 http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx

那么我如何验证 RyuJit 是否真的被使用了呢?

【问题讨论】:

    标签: c# jit ryujit


    【解决方案1】:

    使用 Project + Properties 设置无操作项目:

    • 构建选项卡,取消选中首选 32 位复选框
    • 调试选项卡,勾选启用本机代码调试

    调试 + 步入。输出窗口显示正在加载的 DLL。这条线就是你要找的:

    “ConsoleApplication1.exe”:已加载“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\protojit.dll”,无法找到或打开 PDB 文件。

    也可以从 Debug + Windows + Modules 调试器窗口中看到。 protojit.dll 是新抖动的名称。准确的 CTP2 版本,我无法猜测它是否仍然是“原型”一旦它开始发货。


    更新:现在在 .NET 4.6 中发布。它使用 clrjit.dll 文件名替换原始抖动。旧版还在,当新的jitter出现问题时可以使用,它的名字是compatjit.dll。更多详情请见this post

    【讨论】:

    • 啊好的,谢谢,我看到它确实使用了 protojit.dll
    • 我看到它同时加载了 protojit.dll 和 clrjit.dll。请注意,您无需勾选“Prefer 32-bit”,只需将项目目标更改为 x64 即可。
    • 您必须取消勾选它。始终首选 AnyCPU 作为目标,这样程序仍然可以在 32 位操作系统上运行。
    • 是的,但在测试 RyuJIT 的情况下,我认为没有必要针对 anycpu
    • 另外确保你添加了一个 app.manifest,如果你想使用 SIMD,你可以使用正确的 windows 版本
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多