经过大量搜索之后,我找到的最好的解释是从Java Performance
Tuning网站上的本月问题:1.4.1垃圾收集算法,2003年1月29日
新一代垃圾收集算法
在 (原)复制收集器
(默认启用)。启动此收集器后,所有应用程序线程都会停止,并且复制收集将使用一个线程(即使在多CPU机器上也仅意味着一个CPU)继续进行。这被称为世界停止收集,因为基本上JVM会暂停其他所有操作,直到收集完成为止。的 并行复制收集 (使用-XX启用:+
UseParNewGC)。像原始的复制收集器一样,这是一个世界停止的收集器。但是,此收集器并行化了多个线程上的复制收集,这比用于多CPU机器(尽管不是用于单CPU机器)的原始单线程复制收集器效率更高。与原始单线程复制收集器相比,该算法有可能将年轻代收集速度提高一个等于可用CPU数量的倍数。的 平行扫集电极 (使用-
XX启用:UseParallelGC)。这类似于以前的并行复制收集器,但是针对多CPU机器上的千兆字节堆(超过10GB)调整了算法。该收集算法旨在最大程度地提高吞吐量,同时最大程度地减少暂停时间。它具有可选的自适应调整策略,该策略将自动调整堆空间的大小。如果使用此收集器,则只能使用旧版本中的原始标记扫描收集器(即,较新的旧版本并发收集器无法与此年轻的收集器一起使用)。
根据此信息,似乎主要区别(除CMS合作外)是UseParallelGC支持人体工程学,而UseParNewGC不支持。



