Unterdrückung der JIT-Optimierung beim Laden von Modulen (nur verwaltet)

9

Wenn ich einen Release-Build in VS ausführe, aber den WITH-Debugger angehängt habe. So kann ich Breakpoints setzen und die optimierte Code-Disassemblierung untersuchen. Um alle Optimierungen sehen zu können, muss ich normalerweise OHNE einen Debugger ausführen und den Prozess beenden.

Ist es in Visual Studio ausreichend, den Schalter "JIT-Optimierung bei Laden von Modulen (nur verwalten)" zu deaktivieren, um das gleiche Ergebnis zu erzielen? Mit "dasselbe Ergebnis" meine ich: die gleichen (optimierten) Maschinenanweisungen wie beim Starten ohne Debugger angeschlossen?

Ich habe gehört, dass der JIT-Compiler ALLE Optimierungsoptionen verwenden würde, wenn es sich bei der Assembly um einen Releasebuild handelt und kein Debugger angehängt wäre. Jetzt frage ich mich, ob dieser Schalter mein Debugging / Inspizieren von Live einfacher machen könnte?

    
JGrand 05.03.2012, 10:02
quelle

1 Antwort

3

Es gibt kleine Unterschiede in der IL zwischen DEBUG- und RELEASE-Builds. Daher möchten Sie in diesem Fall das RELEASE-Build verwenden (d. h. alle Debug.XXX-Aufrufe werden in Release-Fällen kompiliert).

Durch das Deaktivieren der Option "JIT-Optimierung beim Laden des Moduls unterdrücken (nur verwalten)" sollte JIT Optimierungen vornehmen können, als ob kein Debugger angehängt wäre. Mir sind keine Unterschiede zwischen diesen beiden Fällen bekannt.

    
Alexei Levenkov 10.03.2012 03:15
quelle