如何查看HotSpot在优化后生成的代码?

8

我希望更好地了解HotSpot在运行时可能为我的Java代码生成哪些优化。

是否有一种方法可以查看HotSpot在运行一段时间后使用的优化代码?

2个回答

10
您需要使用选项-XX:+PrintAssembly-XX:UnlockDiagnosticVMOptions启动JVM,但PrintAssembly需要JVM具有hsdis二进制文件(HotSpot反汇编器)。由于许可证不兼容,JVM未分发hsdis二进制文件,因此您需要自行编译hsdis或从非官方网站下载预先构建的hsdis二进制文件
要理解输出结果,可以使用像JITWatch这样的工具。请按照其说明将调试信息写入日志文件中,并在JITWatch中进行分析。

没错,-XX:+PrintOptoAssembly 是关键。 - David Crawshaw
注意:PrintAssembly是新标志。PrintOptoAssembly是旧标志,我认为需要使用JVM的调试版本。 - Aleksandr Dubinsky


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接