Dot-Net
我是否需要將我的應用程序定位到 .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>