展示XX:ParallelGCThreads选项的默认值。

12
我正在调整Java 8的JVM,想知道参数-XX:ParallelGCThreads的定义值。文档说明如下:-XX:ParallelGCThreads: 设置在垃圾收集器并行处理阶段使用的线程数,平台默认值各不相同。 我想知道我的平台上定义了什么值,以及是否需要更改。但是我没有可用的JDK环境,只有JRE。

@the8472,感谢您的帮助!我想jinfo是来自JDK。在我的环境中只有JRE。 - Dherik
似乎您没有彻底阅读链接的答案。jinfo仅被提及作为一种替代方法。 - the8472
@the8472 我现在明白了。但是这里被接受的答案更详细地解释了如何使用它。 - Dherik
2个回答

29

默认值:

 java -XX:+PrintFlagsFinal | grep ParallelGCThreads
 uint  ParallelGCThreads                        = 4

如果您运行进程时使用jinfo <processId>命令,但该命令的输出结果中不存在相关信息,则说明该进程使用了默认值(请查看VM Flags)。


1
可能需要添加“-version”参数:java -XX:+PrintFlagsFinal -version | grep ParallelGCThreads - dube
1
在某些JVM上,输出会写入stderr,因此需要重定向stderr以进行grep: java -XX:+PrintFlagsFinal 2>&1 | grep ParallelGCThreads - i000174

5
考虑默认值是一个固定的数字N,就像在 -XX:ParallelGCThreads=<N> 中那样。
根据文档,该数字基于您的系统拥有的硬件线程数:
在具有大于8个硬件线程的机器上,平行收集器使用N的固定分数作为垃圾回收器线程的数量。对于大的N值,该分数约为5/8。在N值低于8时,使用的数字为N。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接