我如何知道为Sun JVM启用了哪些默认设置?

Jan*_*ing 29 java jvm jvm-hotspot

我想在我的JVM上尝试CompressedOops.不,我想知道它是否可以默认启用.我在debian/squeeze上运行这个jvm:

$ 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)
Run Code Online (Sandbox Code Playgroud)

有人说它默认启用,有人说它不是:

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

是的,你是对的,我也检查了它,并且在646位Java6u21中默认没有激活Compressed Oops,我不明白为什么它在我提供的链接中这么说.

我尝试用jconsole/JMX检查它,但没有运气找到名为CompressedOops或类似的属性.

有没有人知道我在哪里获得具有默认值的特定构建的所有jvm选项的列表?

关于Janning

sta*_*fan 61

您可以运行以-XX:+PrintFlagsFinal在JVM启动时打印所有标志的值.

或者,您可以使用该jinfo工具检查正在运行的JVM中的标志值:

> jinfo -flag UseCompressedOops 7364
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

使用jps查找进程的PID.

  • `jinfo`也可用于动态打开/关闭标志,例如`jinfo -flag + HeapDumpOnOutOfMemoryError <pid>`如果标志是可管理的.jinfo非常有用 - 即使鲜为人知 - 工具. (3认同)