JVM PrintGCApplicationConcurrentTime和PrintGCApplicationStoppedTime标志

时间:2016-03-07 19:05:58

标签: garbage-collection jvm jvm-arguments

我正在运行Java程序,我需要花费多少时间来收集垃圾。 我找到了这两个JVM标志: -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime

但我无法找到有关它的信息。 我想PrintGCApplicationStoppedTime打印申请时间在STW中的时间,但我不确定-XX:+PrintGCApplicationConcurrentTime。是否打印应用程序与集合线程并发执行的时间?

提前致谢。

2 个答案:

答案 0 :(得分:6)

这些标志的名称不是很准确。

PrintGCApplicationStoppedTime显示应用程序在安全点停止的时间。大多数情况下,安全点是由垃圾收集的世界各个阶段引起的,many other reasons exist

PrintGCApplicationConcurrentTime是应用程序在不停止的情况下运行的时间,即两个连续安全点之间的时间。

答案 1 :(得分:0)

您使用这些标志知道您的申请多长时间 在垃圾收集之间运行

最终可以从中计算出来 GC日志但是查看该信息的便捷方式 命令行标记-XX:+PrintGCApplicationStoppedTime-XX:+PrintGCApplicationConcurrentTime

将这些添加到命令行会产生如下输出:

Application time: 0.2863875 seconds
Total time for which application threads were stopped: 0.0225087 seconds
Application time: 0.1476791 seconds
Total time for which application threads were stopped: 0.0255697 seconds

应用程序运行(在第一行中报告)大约287毫秒,然后是 停止了大约22毫秒(在第二行报告)。

标志可以单独使用,也可以一起使用。