我想知道,是否可以了解HotSpot编译器在编译给定的Java字节码类或方法时生成的实际机器代码?
答案 0 :(得分:10)
是的,使用-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
,Hotspot VM可以在实际执行(编译)给定的字节码方法时为您提供该信息。
有关详细信息,请参阅示例HotSpotInternals Wiki:Print Assembly。它需要一个反汇编程序模块(Windows上的hsdis - * .dll)。
使用JITWatch会更舒服(但它使用的是HotSpot中的相同基础架构)。