2015-07-21 10 views
11

Lesen von Announcing .NET Framework 4.6 es scheint zu implizieren, dass RyuJIT nur für .NET 4.6 ist.Muss ich meine Anwendung auf .NET 4.6 ausrichten, um RyuJIT nutzen zu können?

Bedeutet das, dass ich meine Anwendungen auf .NET 4.6 neu ausrichten muss, damit RyuJIT wirksam wird?

+2

Sobald .NET 4.6 auf einem System installiert ist, erhalten alle 64-Bit .NET 4.0 + Anwendungen RyuJITted, sofern Sie [RyuJIT nicht auf App- oder Systemebene deaktivieren] (https://github.com/Microsoft/dotnet/blob/master/) docs/testing-with-ryujit.md # disable-ryujit). – NextInLine

Antwort

15

Kurze Antwort: Nein.

Lange Antwort: Verwenden Sie den Debugger, um sicherzustellen, dass Sie die neue Version haben. Sehen Sie sich zunächst das Laufzeitverzeichnis mit Explorer an und navigieren Sie zu C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319. Sie werden die beiden Jitter dort finden, clrjit.dll ist neuer Jitter basierend auf dem Ryujit-Projekt und compatjit.dll ist der Legacy-x64-Jitter.

Projekt> Eigenschaften> Debug> aktivieren Sie die Option zum Debuggen des systemeigenen Codes. Verwenden Sie die Registerkarte Erstellen, und stellen Sie sicher, dass Sie den Jitter-Forcing entfernt haben, die Option "32-Bit bevorzugen" muss deaktiviert werden, "Platform target" muss auf AnyCPU gesetzt werden. Verwenden Sie die Registerkarte "Anwendung", um das Framework-Ziel auszuwählen.

Verwenden Sie Debug> Schritt, um mit dem Debuggen zu beginnen. Debug> Windows> Module zeigt die Liste der geladenen Module an. Suchen Sie die Jitter-DLLs in dieser Liste, und klicken Sie auf die Spaltenüberschrift "Name", um nach Namen zu sortieren. Wenn Sie compatjit.dll zurück sehen, verwenden Sie den Legacy-Jitter. Beachten Sie, dass Sie immer clrjit.dll sehen, beide werden geladen, wenn der Legacy-Jitter verwendet wird.

Mit dem Legacy-x64-Jitter erfordert absichtlich entweder die COMPLUS_useLegacyJit Umgebungsvariable oder einen useLegacyJit Wert in den HKLM oder HKCU \ Software \ Microsoft \ .NETFramework Registrierungsschlüssel oder einen app.exe.config Dateieintrag:

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