1

用jcmd显示直接在命令行指定的标志。:
%jcmd process_id VM.command_line

可用以下方式获得对应用生效的JVM调优标志:
%jcmd process_id VM.flags [-all]

flags显示命令行设置的标志,以及JVM直接设置的标志(因为它们的值是通过自动优化决定的)。该命令加上all时,可以列出JVM内部所有的标志。

在启动命令行上添加-XX:+Printflagsfinal
这个命令会打印JVM标志及其取值的完整列表(结果和jcmd结合VM.flags -all打印的相同)。

uintx InitialHeapSize                          := 4169431040    {product}
intx InlineSmallCode                           = 2000           {pd product}

这些命令的标志数据以上述两种方式之一显示。输出第1行中的冒号表示标志使用的是非默认值。发生这种情况,可能是以下原因导致。
(1)标志值直接在命令行指定。
(2)其他标志间接改变了该标志的值。
(3)JVM自动优化计算出来的默认值。
第2行(没有冒号)表示,值是这个JVM版本的默认值。某些标志的默认值在不同平台上可能会不相同,输出的最右列会指示。product表示在所有平台上的默认设置都是一致的。pd product表示标志的默认值是独立于平台的。


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...