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

1

32

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

Encompass answered 8/3, 2011 at 10:47 Comment(2)
Related: #1880799Strachey
I'm 90% sure it's not enabled by default. Not that you should let that convince you :)Strachey
S
71

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.

Sharrisharron answered 17/3, 2011 at 9:39 Comment(3)
This is a great answer. But for me it doesn't work as expected on debian squeeze: Unable to open socket file: target process not responding or HotSpot VM not loaded. it shows me a long list of values if i call it just with 'jinfo <pid>' but in this view i don't see if CompressOops is set.Encompass
jinfo can also be used to turn on/off the flag dynamically, e.g. jinfo -flag +HeapDumpOnOutOfMemoryError <pid> if the flag is manageable. jinfo is very useful -- even if little known -- tool.Lesbian
The options really useful: -XX:+PrintFlagsFinalSynchronic

© 2022 - 2024 — McMap. All rights reserved.