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

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

有没有办法看到HotSpot运行一段时间后使用的优化代码?

您需要使用-XX:+PrintAssembly-XX:UnlockDiagnosticVMOptions选项启动JVM,但PrintAssembly需要JVM具有hsdis二进制文件(HotSpot反汇编程序)。 由于许可证不兼容,hsdis二进制文件不随JVM一起分发,因此您需要自己编译hsdis或从非官方网站查找预构建的hsdis二进制文件 。

为了理解输出,像JITWatch这样的工具很有用。 按照其说明将调试信息写入日志文件,该日志文件可在JITWatch中进行分析。