并行复制垃圾回收器和并行清除垃圾回收器之间的区别



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

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

正如您链接的页面已经说过的那样,它们旨在与对跨代标记有不同的需求的不同老一代收藏家合作。

热点中目前可能的一些 GC 组合已经在 jdk8 中被弃用,并将在 jdk9 中删除

引用旧热点常见问题解答:

此外,平行的年轻一代收集器(-XX:+UseParNewGC) 与并发低暂停收集器集成,而 并行垃圾回收器 (-XX:+UseParallelGC) 不是。有一些 与这种集成相关的成本,即使 不使用并发低暂停收集器。相反,平行 垃圾回收器 (-XX:+UseParallelGC) 可与自适应 ssize (-XX:+UseAdaptiveSizePolicy) 而平行的年轻 生成收集器 (-XX:+使用ParNewGC) 不能。

您可以在此博客文章中找到一些其他详细信息

如果这对您来说仍然不够,我建议您访问 hotspot-gc-dev 邮件存档,其中可能包含一些实现细节。

最新更新