Skip to main content

Zahid Qureshi Thoroughly Inspects the HotSpot JVM Options

Posted by editor on January 15, 2011 at 3:02 PM PST

While the HotSpot JVM provides developers with a powerful set of JVM options, the documentation that's provided for the options is, in the words of Zahid Qureshi, "criminally short and non-comprehensive." However, Zahid isn't one to simply complain and walk away. Instead, he took the time to thoroughly investigate the HotSpot JVM options, and he presents the results of his study and analysis in his recent blog post, "Inspecting HotSpot JVM Options."

Zahid notes that

The JVM options themselves can be controlled in a number of ways:

  • via the command line on JVM startup.
  • via JMX for certain options where this is allowed.
  • indirectly via the command line by a super-option which then sets other options.
  • automatically by the JVM. The JVM has ergonomic capability to detect features of the host and set options accordingly.

Using the first two methods we are explicitly setting options ourselves and can easily track what value each option has (true, false, 20, 100 etc).

Zahid goes on to describe and demonstrate the key options, talks about client versus server JVM analysis, and investigates the "super-option" -XX:+AggressiveOpts, before concluding:

There is enormous scope for coarse and fine grained control of JVM behaviour. The option -XX:+PrintFlagsFinal allows comprehensive reporting of the options and their values. The available options vary by build and JVM type (server or client). Recording and auditing this output is an important step in any Java benchmarking or continuous monitoring exercise. Oracle can surreptitiously enable options in new Java builds which may cause inexplicable changes in performance and behaviour of existing applications.

As Dustin Marx said in a recent blog post:

Inspecting HotSpot JVM Options is a great post for those wishing to understand better the options provided by Oracle's (formerly Sun's) HotSpot Java Virtual Machine.

Java Today

On the Aquarium, Alexis Moussine-Pouchkine announces One more move : -

The entire content is being moved to Oracle systems ( before it is eventually shut down. This is another consolidation move to standardize on Oracle practices and systems and remove any duplication. The content on (DSC) was converted in December to the new format and has now been republished to the new home (full index still under construction, Oracle GlassFish Server 3.0.1 documentation is here)...

Stephen Chin discusses Visage Android – Cleaner APIs, Cleaner UIs:

I have been busily working away at getting Visage ready for developing Android applications. It is a great fit, because Android converts regular Java class files into its special class format, and the Visage compiler happens to generate Java class files. Also, Android is desperately in need of some TLC on their APIs...

HudsonMobi presents Watch Hudson Mobi in action on Android ... plays Jazz :-) -

Watch the new video of Hudson Mobi 2.1.3 in action on Android ... simple, fast and easy to use ! ...

Julien Dubois continues his Oracle Technology Network article series with Part 4: Security and Performance Tuning of a REST and Ajax Application -

In this article, we will look at advanced topics, such as security and performance. We will learn how to secure our application against XSS (cross-site scripting) attacks and how to improve the application's performance on both the server and the client sides...


Our latest href="">Spotlight is Java Spotlight Podcast 12: Adam Bien -

Interview with Adam Bien, Java Champion, consultant, lecturer, speaker, software architect, developer, and author of Java books, on just about everything related to Java. Joining us this week on the Java All Star Developer Panel is Alexis Moussine-Pouchkine, Java EE evangelist...

We're also featuring Arun Gupta's entry on the "Stories" blog, CEJUG - Manage your JUGs using GlassFish:

Typically the JUG members are identified by subscribers on a mailing list. This however does not provide enough information about the members to the JUG leaders. The Ceará Java User Group (CEJUG) in Brazil is trying to change that by formalizing the notion of a JUG member and created an application to manage all the activities associated with it...


Our current poll asks Would you recommend learning Java to today's college students and developers who want to add to their skill set? Voting will be open until Monday.

Subscriptions and Archives: You can subscribe to this blog using the Editor's Blog Feed. You can also subscribe to the Java Today RSS feed and the blogs feed. You can find historical archives of what has appeared the front page of in the home page archive.

-- Kevin Farnham

Twitter: @kevin_farnham