是否可以查看JVM热点编译器生成的机器代码?

Rec*_*iwe 6 java bytecode machine-code

我想知道,是否可以了解HotSpot编译器在编译给定的Java字节码类或方法时生成的实际机器代码?

eck*_*kes 10

是的,-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssemblyHotspot VM可以在实际执行(编译)给定的字节码方法时为您提供该信息.

有关详细信息,请参阅HotSpotInternals Wiki:Print Assembly.它确实需要一个反汇编程序模块(Windows上的hsdis - *.dll).

使用JITWatch更舒服(但它使用来自HotSpot的相同基础设施).