次要GC导致在Java中停止世界暂停?

时间:2015-04-09 05:14:49

标签: java garbage-collection

语言: Java

我不确定Minor GC是否会导致所有应用程序线程等到GC进程在java中完成。请详细说明。

1 个答案:

答案 0 :(得分:4)

这是依赖于实现的。

如果您正在使用热点VM,则可以通过-XX:+PrintGCApplicationStoppedTime打印有关GC STW暂停的信息。如果要打印所有STW暂停(不仅仅是GC暂停),可以使用-XX:+PrintSafepointStatistics –XX:PrintSafepointStatisticsCount=1 [source]。

其他JVM可能表现不同。一个常被引用的例子是Azul的Zing和他们的无间隙收集器 - 虽然它实际上确实有暂停,但那些是恒定时间。

另外,请注意,GC到GC-STW暂停的时间没有相关的壁挂时间。即STW时间可能比GC时间更短,相等或更长。