求助>CMS GC后,YGC时间会减少一半>
4回复
1周前

CMS GC后,YGC时间会减少一半



一次CMS GC 后,YGC时间 会减少一半,性能提高一倍。这个是什么原因导致的呢? 有什么方法可以不通过CMS GC,也能做到YGC时间减少一半吗?

1669 阅读
请先登录,再评论

回复列表

言风1周前

可以看下你的jvm参数,听你描述感觉像使用了CMSScavengeBeforeRemark这个参数

言风1周前
回复云巅:

我拿你的参数检查了下,你可以看下参数查询
有几个参数使用姿势不太正确,导致没有生效,当然你也可以自己去使用xxfox去检查下参数看下用法以及画然后你确实是使用了CMSScavengeBeforeRemark,这个参数的作用是在cms gc remark之前做一次ygc,减少gc roots扫描的对象数,从而提高remark的效率。所以你描述的现象,应该就是这个参数引起的。

回复
云巅1周前
回复言风:

没有什么特殊配置,参数如下:
-Xms6144m -Xmx6144m -Xmn4096m -XX:+UseConcMarkSweepGC -XX:+CMSScavengeBeforeRemark -XX:MaxTenuringThreshold=15-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/systemerror.dump -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+UseCMSInitiatingOccupancyOnly -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:+UseParNewGC -XX:+PrintGCDetails -Xloggc:/data/applogs/systemgc_${DATE_FORMAT}.log

回复