Ich frage mich, ob es möglich ist, den tatsächlichen Maschinencode zu sehen, den der HotSpot-Compiler generiert, wenn er eine Java-Bytecode-Klasse oder Methode kompiliert?Kann der vom JVM-Hotspot-Compiler generierte Maschinencode angezeigt werden?
5
A
Antwort
10
Ja, mit -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
kann die Hotspot-VM Ihnen diese Informationen geben, wenn sie eine gegebene Bytecode-Methode tatsächlich ausführt (kompiliert).
Siehe zum Beispiel HotSpotInternals Wiki:Print Assembly für Details. Es erfordert ein Disassembler-Modul (hsdis - *. Dll unter Windows).
Ein bisschen komfortabler ist die Verwendung JITWatch (aber es verwendet die gleiche Infrastruktur von HotSpot).
möglich duplicate von [Wie Bytecode in maschineneigenen Code übersetzen] (http://stackoverflow.com/questions/8167479/how-translate-bytecode-to-machine-native-code) –
Auch wenn es ... es ist wird nicht lesbar sein. – Rahul
Ich möchte es eigentlich nicht verwenden, um die Leistung zu verbessern, nur um den tatsächlichen Maschinencode für einen Computerarchitekturkurs zu sehen. – Recusiwe