问题描述
我想知道,是否有可能关注HotSpot编译器在编译给定Java字节码类或方法时生成的实际机器代码?
I was wondering, is it possible to get eyes on the actual machine code that the HotSpot compiler generates when it compiles a given Java bytecode class or method?
推荐答案
是的,使用 -XX:+ UnlockDiagnosticVMOptions -XX:+ PrintAssembly
,Hotspot VM可以在实际执行时为您提供该信息(编译)给定的字节码方法.
Yes, with -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
the Hotspot VM can give you that information when it actually executes (compiles) a given bytecode method.
例如,参见 HotSpotInternals Wiki:Print Assembly了解详情.它确实需要一个反汇编程序模块(在Windows上为hsdis-*.dll).
See for example HotSpotInternals Wiki:Print Assembly for details. It does require a disassembler module (hsdis-*.dll on Windows).
使用 JITWatch (但它使用了相同的基础设施).
A bit more comfortable is using JITWatch (but it uses the same infrastructure from HotSpot).
这篇关于是否可以查看由JVM热点编译器生成的机器代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!