次要 GC 导致 Stop the world 在 java 后暂停?

Minor GC causes Stop the world pauses in java?

语言: Java

我不确定 Minor GC 是否导致所有应用程序线程等待 GC 进程在 java 完成。请说明一下。

这取决于实现。

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

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

另外,请注意,在 GC 中花费的墙时间与 GC-STW 暂停之间没有不变的关联。 IE。 STW 时间可以短于、等于或长于 GC 时间。