当前位置: 首页 > 面试题库 >

-XX:+ UseParallelGC和-XX:+ UseParNewGC之间的区别

韩照
2023-03-14
问题内容

它们是用于年轻一代垃圾收集的算法。

第二个(UseParNewGC)会与并发的终身生成垃圾收集一起自动激活(请参阅Java Concurrent和ParallelGC),但是,这两个并行算法之间有区别吗?


问题答案:

经过大量搜索之后,我找到的最好的解释是从Java Performance
Tuning网站上的本月问题:1.4.1垃圾收集算法,2003年1月29日

新一代垃圾收集算法

(原)复制收集器
(默认启用)。启动此收集器后,所有应用程序线程都会停止,并且复制收集将使用一个线程(即使在多CPU机器上也仅意味着一个CPU)继续进行。这被称为世界停止收集,因为基本上JVM会暂停其他所有操作,直到收集完成为止。

并行复制收集 (使用-XX启用:+
UseParNewGC)。像原始的复制收集器一样,这是一个世界停止的收集器。但是,此收集器并行化了多个线程上的复制收集,这比用于多CPU机器(尽管不是用于单CPU机器)的原始单线程复制收集器效率更高。与原始单线程复制收集器相比,该算法有可能将年轻代收集速度提高一个等于可用CPU数量的倍数。

平行扫集电极 (使用-
XX启用:UseParallelGC)。这类似于以前的并行复制收集器,但是针对多CPU机器上的千兆字节堆(超过10GB)调整了算法。该收集算法旨在最大程度地提高吞吐量,同时最大程度地减少暂停时间。它具有可选的自适应调整策略,该策略将自动调整堆空间的大小。如果使用此收集器,则只能使用旧版本中的原始标记扫描收集器(即,较新的旧版本并发收集器无法与此年轻的收集器一起使用)。

根据此信息,似乎主要区别(除CMS合作外)是UseParallelGC支持人体工程学,而UseParNewGC不支持。



 类似资料:
  • 问题内容: 我在这里找到了JVM标志。关于它们的作用有更详细的解释吗? 问题答案: 设置此标志会将JVM进行的所有垃圾收集写入日志文件(或stdout,但它的用处不大),并且可以使用[此处](http://codingdict.com/questions/2045提到的工具进行分析。使用此信息,您可以微调垃圾回收配置。

  • 我的教授希望两个变量(摄氏度和华氏度)都是双倍的,我为摄氏度设置了双倍声明;和华氏度; 不知何故,compile在JPanel的两行上都发现了两个错误。setBounds(xxx,xxx,变量,xx);因为它是“不兼容的类型:从double到int的可能有损转换” 当我尝试将变量更改为int时。错误是摄氏度的公式无法识别int。那么如何使它适用于双变量呢?

  • XX-Mini 软件说明 源码取自 XX-Net 项目,精简 web UI、php_proxy 以及 x_tunnel 等功能,只保留 gae_proxy 以及自动扫描IP功能。 用户数据保存到 data 目录,运行软件后会自动生成,支持 manual.ini 配置文件,自定义IP段 ip_range.txt。 代码为 Linux 版本,欢迎提交 commit,提交代码后一段时间内会同步到 Win

  • 本文向大家介绍详解Django将秒转换为xx天xx时xx分,包括了详解Django将秒转换为xx天xx时xx分的使用技巧和注意事项,需要的朋友参考一下 Django将秒转换为xx天xx时xx分,具体代码如下所示: 知识点扩展:django 将model转换为字典 总结 以上所述是小编给大家介绍的Django将秒转换为xx天xx时xx分,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回

  • 问题内容: 在以下代码中使用SimpleDateFormatter.format时,startDateText TextView中12:00和12:59之间的小时显示为00:00到00:59,而从13:00开始,它们正确显示为13:xx,14: xx直到23:59。 -—根据要求重构代码当dtold.parse(…)中的字符串为in时,示例的输出小时为00:00,当其为“ 13:00”时,则正确为

  • 就像问题一样,当我使用JVM选项-XX PrintFlagsFinal运行程序时,我可以看到打印的MaxHeapSize如下: 当我使用JVM选项-XX PrintCommandLineFlags运行同一个程序时,我可以看到MaxHeapSize为: 你能告诉我为什么这两个不同吗?我想它们应该是一样的。