语言: Java
我不确定Minor GC是否会导致所有应用程序线程等到GC进程在java中完成。请详细说明。
答案 0 :(得分:4)
这是依赖于实现的。
如果您正在使用热点VM,则可以通过-XX:+PrintGCApplicationStoppedTime
打印有关GC STW暂停的信息。如果要打印所有STW暂停(不仅仅是GC暂停),可以使用-XX:+PrintSafepointStatistics –XX:PrintSafepointStatisticsCount=1
[source]。
其他JVM可能表现不同。一个常被引用的例子是Azul的Zing和他们的无间隙收集器 - 虽然它实际上确实有暂停,但那些是恒定时间。
另外,请注意,GC到GC-STW暂停的时间没有相关的壁挂时间。即STW时间可能比GC时间更短,相等或更长。