Further notes on Hotspot compiler flags

Further notes on Hotspot compiler flags

Continuing on from my last post, here we'll be looking at flags used to control the C2 or server compiler of the Hotspot JVM.


Configuration

In order to reduce the noise created in the compilation logs, we'll be disabling tiered compilation so that only the server compiler will be used. This is done using the following flag:

-XX:-TieredCompilation

We'll also be producing more detailed compiler logs using:

-XX:+UnlockDiagnosticVMOptions
-XX:+LogCompilation

These flags will cause the JVM to generate a file called hotspot_pid>.log in the current working directory, containing detailed information on the operation of the compiler.

C2 Compile Thresholds

 

The server compiler seems to behave in a slightly different manner to the profile-guided client compiler.

Looking at the flags related to Tier4 compilation options (Tier4 is the server compiler), we can see a similar set to those for the Tier3 thresholds described in the last post:

[mark@metal jvm-warmup-talk]$ java -XX:+PrintFlagsFinal 2>&1 | grep Tier4
intx Tier4BackEdgeThreshold = 40000
intx Tier4CompileThreshold = 15000
intx Tier4InvocationThreshold = 5000
intx Tier4LoadFeedback = 3
intx Tier4MinInvocationThreshold = 600

To read the rest of this article, please see the original blog post:

https://epickrram.blogspot.co.uk/2016/03/further-notes-on-hotspot-compiler-flags.html

To view or add a comment, sign in

Explore content categories