How do i know which default settings are enabled for Sun JVM?

Janning picture Janning · Mar 8, 2011 · Viewed 17k times · Source

i want to try CompressedOops on my JVM. No I wonder if it might be enabled by default. I run this jvm on debian/squeeze:

$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

Some people say it is enabled by default, some say it is not:

from: http://forums.yourkit.com/viewtopic.php?f=3&t=3185

Yes, you are right, I also checked it and Compressed Oops is not activated by default in Java6u21 64-bit, I do not understand why it said so in the links I provided.

I tried to check it with jconsole/JMX but had no luck to find an attribute named CompressedOops or alike.

Does anybody know where i get a list of all jvm options for a specific build with their default values?

regards Janning

Answer

staffan picture staffan · Mar 17, 2011

You can run with -XX:+PrintFlagsFinal to print the values of all flags at startup of the JVM.

Alternatively, you can use the jinfo tool to check the value of a flag in a running JVM:

> jinfo -flag UseCompressedOops 7364
-XX:+UseCompressedOops

Use jps to find the pid of the process.