关于java GC的次要集合和主要集合之间的区别

时间:2011-11-03 01:55:48

标签: java garbage-collection

我对java GC有疑问。我知道年轻一代和主要收藏品的收藏很少,通常YG的尺寸小于终身一代的尺寸。因此,次要集合的发生频率高于主要集合。

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

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

感谢。

1 个答案:

答案 0 :(得分:2)

  

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

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

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

请注意,暂停的长度,而不是重要的暂停频率。暂停时间太短,不会伤到任何人。

相关问题