【问题标题】:young GC pause vs STW pause年轻的 GC 暂停与 STW 暂停
【发布时间】:2019-04-19 14:58:56
【问题描述】:

当年轻代 GC 暂停时 -

  1. 它会停止应用程序一段时间吗?
  2. 在此期间应用程序是否可以访问内存?

IIUC 在 stop the world GC (STW GC) 应用程序将被暂停并且无法访问内存,但想知道年轻 gc 的副作用是什么?仅供参考 - 我们最近使用 G1GC 迁移到 Java 11,并且与 Java 8 相比,我们发生了很多年轻的 GC。

【问题讨论】:

    标签: java garbage-collection java-11 g1gc


    【解决方案1】:
    1. 是的。启用 GCsafepoint 日志记录以查看暂停时间
    2. 大多没有。 stop-the-world 意味着应用程序线程被暂停。 JNI 代码在 GC 期间仍然可以运行,只要它不访问对象句柄并且可以访问堆外资源

    【讨论】:

    • 确认一下,以上两点都是针对young gc的,不是针对STW的,对吗?
    • G1 中的年轻集合 STW 集合。成为 STW 只是描述特定收集器的行为,而不是特定阶段或生成。这些是正交的,在其他收集器中可能会有所不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多