.NET Framework 4.6の発表を読むと、RyuJIT が .NET 4.6 専用であることを暗示しているようです。
これは、RyuJIT を有効にするには、アプリケーションのターゲットを .NET 4.6 に変更する必要があるということですか?
.NET Framework 4.6の発表を読むと、RyuJIT が .NET 4.6 専用であることを暗示しているようです。
これは、RyuJIT を有効にするには、アプリケーションのターゲットを .NET 4.6 に変更する必要があるということですか?
短い答え:いいえ。
長い答え: デバッガーを使用して、新しいバージョンがあることを確認してください。まず、エクスプローラーでランタイム ディレクトリを確認し、C:\Windows\Microsoft.NET\Framework64\v4.0.30319 に移動します。そこに 2 つのジッターがあります。これはclrjit.dll
、Ryujit プロジェクトに基づく新しいジッターでcompatjit.dll
あり、従来の x64 ジッターです。
[プロジェクト] > [プロパティ] > [デバッグ] > [ネイティブ コードのデバッグ オプションを有効にする] にチェックを入れます。[Build] タブを使用して、ジッター強制を削除したことを確認します。[Prefer 32-bit] オプションのチェックを外し、[Platform target] を AnyCPU に設定する必要があります。[アプリケーション] タブを使用して、フレームワーク ターゲットを選択します。
[デバッグ] > [ステップ イン] を使用して、デバッグを開始します。[デバッグ] > [ウィンドウ] > [モジュール] を選択すると、読み込まれたモジュールの一覧が表示されます。そのリストに戻ってジッター DLL を見つけ、[名前] 列ヘッダーをクリックして名前で並べ替えます。戻ってきた場合compatjit.dll
は、従来のジッターを使用しています。常に clrjit.dll が表示されることに注意してください。従来のジッタが使用されると、両方ともロードされます。
従来の x64 ジッターを意図的に使用するには、COMPLUS_useLegacyJit 環境変数、または HKLM または HKCU\Software\Microsoft\ .NETFramework レジストリ キーまたは app.exe.config ファイル エントリの useLegacyJit 値が必要です。
<runtime>
<useLegacyJit enabled="1"/>
</runtime>