并行复制垃圾收集器和Parallel Scavenge垃圾收集器之间的区别

时间:2015-01-16 06:10:45

标签: garbage-collection

最近,我正在研究Java Hotspot垃圾收集器。搜索这个主题后,我发现大多数来源都使用了两个名为" Parallel Scavenge Collector"和"并行复制收集器" (如oraclecollectors)。 我很困惑两者之间有什么区别。据我所知,两者都是一样的。我知道复制收集它移动来自"来自"到"到"空间。如果两个收集器之间存在差异,请向我提供有关它的详细信息。如果不是,那么为什么它使用术语" Scavenge"而不是" copy" ?

1 个答案:

答案 0 :(得分:1)

它们是或多或少相同概念的不同实现。

由于您链接的页面已经说明了,它们是为了与不同的旧代收藏家合作,这些收藏家对跨代标记有不同的需求。

热点中某些当前可能的GC组合在jdk8中已经been deprecated,在jdk9中已经will be removed

引用旧热点FAQ:

  

另外并行年轻代收藏家(-XX:+ UseParNewGC)   与并发低暂停收集器集成,而   并行垃圾收集器(-XX:+ UseParallelGC)不是。有一些   与这种整合相关的成本即使是在这种情况下也会产生   不使用并发低暂停收集器。相反,平行   垃圾收集器(-XX:+ UseParallelGC)可以与自适应一起使用   大小调整(-XX:+ UseAdaptiveSizePolicy)而平行年轻   生成收集器(-XX:+ UseParNewGC)不能。

您可以在this blog post

上找到一些其他详细信息

如果仍然没有足够的信息给你,我建议点击hotspot-gc-dev邮件档案,这可能有一些实施细节。