I'd like to have a better understanding of what optimizations HotSpot might generate for my Java code at run time.
Is there a way to see the optimized code that HotSpot is using after it's been running for a while?
I'd like to have a better understanding of what optimizations HotSpot might generate for my Java code at run time.
Is there a way to see the optimized code that HotSpot is using after it's been running for a while?
You will need to start the JVM with the options -XX:+PrintAssembly
and -XX:UnlockDiagnosticVMOptions
, but PrintAssembly requires the JVM to have the hsdis binary (HotSpot disassembler). The hsdis binary is not distributed with the JVM due to license incompatibility, so you will need to compile hsdis yourself or find a prebuilt hsdis binary from an unofficial web site.
To make sense of the output, a tool like JITWatch is useful. Follow its instructions to write the debug information to a log file which can be analyzed in JITWatch.
PrintAssembly
is the new flag. PrintOptoAssembly
is the old flag, which I believe requires a debug build of the JVM. –
Guilt © 2022 - 2024 — McMap. All rights reserved.