【发布时间】:2010-12-05 19:48:11
【问题描述】:
我想更好地了解 HotSpot 可能在运行时为我的 Java 代码生成哪些优化。
有没有办法查看 HotSpot 运行一段时间后使用的优化代码?
【问题讨论】:
标签: java optimization jvm-hotspot
我想更好地了解 HotSpot 可能在运行时为我的 Java 代码生成哪些优化。
有没有办法查看 HotSpot 运行一段时间后使用的优化代码?
【问题讨论】:
标签: java optimization jvm-hotspot
您需要使用选项 -XX:+PrintAssembly 和 -XX:UnlockDiagnosticVMOptions 启动 JVM,但 PrintAssembly 要求 JVM 具有 hsdis 二进制文件(HotSpot 反汇编程序)。由于许可证不兼容,hsdis 二进制文件未与 JVM 一起分发,因此您需要compile hsdis yourself 或查找prebuilt hsdis binary from an unofficial web site。
为了理解输出,JITWatch 之类的工具很有用。关注its instructions,将调试信息写入日志文件,可在 JITWatch 中进行分析。
【讨论】:
PrintAssembly 是新标志。 PrintOptoAssembly 是旧标志,我认为它需要 JVM 的调试版本。