【问题标题】:Regarding the difference between minor collection and major collection for java GC关于java GC的minorcollection和majorcollection的区别
【发布时间】:2011-11-03 01:55:48
【问题描述】:

我有一个关于 java GC 的问题。我知道年轻代有次要收集,老生代有主要收集,通常 YG 的大小小于终身代的大小。因此,次要收集比主要收集更频繁地发生。

我的问题是,当次要收集和主要收集开始时,它们如何不同地影响应用程序线程?

如果次要收集发生得更频繁,是否会使应用程序线程更频繁地暂停,即使它快速收集垃圾对象?

谢谢。

【问题讨论】:

    标签: java garbage-collection


    【解决方案1】:

    我的问题是,当次要收集和主要收集开始时,它们如何不同地影响应用程序线程?如果次要收集发生得更频繁,是否会使应用程序线程更频繁地暂停,即使它快速收集垃圾对象?

    简单的答案是您的问题(几乎)是同义反复。如果次要收集更频繁地发生,并且次要收集导致应用程序暂停,那么当然这会使应用程序暂停更频繁。

    真正的答案是,行为取决于各个空间的大小(例如 YG 与 YG + TG)以及......更重要的是......取决于您配置 JVM 使用的 GC。例如,如果您使用的是低暂停收集器,那么暂停应该不会很明显......除非您将限制推得太远。

    请注意,重要的是停顿的长度,而不是停顿的频率。太短而无法注意到的停顿不会伤害任何人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多