2014-07-12 3 views
5

Мне было интересно, можно ли взглянуть на фактический машинный код, который генерирует компилятор HotSpot при компиляции данного класса или метода байт-кода Java?Можно ли просмотреть машинный код, сгенерированный компилятором JVM hotspot?

+0

Возможный дубликат [How Translate ByteCode to Machine Native Code] (http://stackoverflow.com/questions/8167479/how-translate-bytecode-to-machine-native-code) –

+0

Даже если это ... это не будет читаемым. – Rahul

+0

На самом деле я не хочу использовать его для повышения производительности, просто чтобы взглянуть на фактический машинный код для курса компьютерной архитектуры. – Recusiwe

ответ

10

Да, с -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly Hotspot VM может предоставить вам эту информацию, когда она фактически выполняет (компилирует) данный метод байт-кода.

Подробнее см., Например, HotSpotInternals Wiki:Print Assembly. Для этого требуется модуль дизассемблера (hsdis - *. Dll для Windows).

Чуть более удобно использовать JITWatch (но он использует ту же инфраструктуру от HotSpot).