首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-XX:+UseG1GC是-Xincgc的正确替代品吗?

-XX:+UseG1GC是-Xincgc的正确替代品吗?
EN

Stack Overflow用户
提问于 2015-11-25 14:34:54
回答 3查看 31.3K关注 0票数 14

目前,我们正在通过将-Xincgc添加到java命令来使用增量垃圾收集器。在JDK 8中,这个开关是不推荐的。那么,它的等效替代品是什么呢?-XX:+UseG1GC

背景:应用程序有一个8GB堆,并创建了许多短活动对象。我注意到,它经常停顿几秒钟来进行垃圾收集。出于好奇,我添加了-Xincgc,发现暂停已经消失,总体性能提高了4倍。

不幸的是,我没有找到任何关于-Xincgc触发器的垃圾收集器类型的信息。有CMS (并发标记和扫描)和新的G1 (垃圾优先)。但我能从-Xincgc那里得到什么

EN

回答 3

Stack Overflow用户

发布于 2015-11-25 14:44:42

对于Oracle/OpenJDK 8,大多数机器上的默认收集器是并行吞吐量收集器,除了一些32位窗口机器外,它可以是Serial。

Xincgc是增量模式下的CMS。您所看到的主要好处可能是从吞吐量收集器切换到CMS,而不是从专为单核CPU设计的增量模式。

增量模式也被废弃。,所以只需通过-XX:+UseConcMarkSweepGC启用CMS,看看这是否适用于您。更新:CMS也已被废弃,然后在以后的OpenJDK版本中被删除

当然,您也可以尝试G1GC,它的目的也是为了达到较低的暂停时间目标,并且它的优点是不像CMS那样受到碎片的影响,因此不太可能发生并发模式故障,从而导致单线程停止世界收集。Update:新的OpenJDK版本除了提供G1GC之外,还提供额外的低暂停时间收集器),所以,尝试两者并进行度量。

另见:Oracle的Java 8 GC调优指南

票数 14
EN

Stack Overflow用户

发布于 2016-11-22 17:57:41

直到Oracle在新版本中完全反对此选项为止。我们仍然可以使用它,方法是应用以下jvm params:

代码语言:javascript
复制
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+PrintGCDetails -XX:+PrintGCTimeStamps

后两个参数用于登录GC活动。

票数 3
EN

Stack Overflow用户

发布于 2022-03-06 21:35:32

在多处理器系统上出现症状,将Java虚拟机的垃圾收集器(GC)配置为使用并发标记扫描( CMS )“增量”模式将导致性能低于常规模式下的CMS。

不幸的是,当在Web上搜索Java调优页面时,有许多文档建议在增量模式下使用CMS,方法是设置一个命令行开关-XX:+CMSIncrementalMode或-Xincgc。

1.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33919213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档