栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java垃圾收集器G1GC需要很长时间进行“对象复制”(撤离暂停)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java垃圾收集器G1GC需要很长时间进行“对象复制”(撤离暂停)

为什么GCG1仍然为此做一个“停止世界”?

因为G1并不是一个 无休止的 收集器,所以它只是一个 低暂停时间的 收集器。

我还认为-XX:MaxGCPauseMillis的默认值为200毫秒,为什么这个值违反29甚至50的倍数(请参见下文)?

是的,但这只是一个目标,而不是保证。许多事情可能导致它无法实现该目标。您有相当大的堆,这使事情变得更加困难,即失败更容易引起。

无论如何,GC调整过程始于通过以下方式启用详细的GC日志记录:

-Xloggc:<path to gc log file>-XX:+PrintAdaptiveSizePolicy-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+PrintGCDetails

然后通过GCViewer运行生成的日志以获取总体概述,然后返回阅读单个日志条目(有关此主题的答案/博客文章很多),以找出可能导致最坏行为的原因。根据原因,可以尝试各种补救措施。

为了避免货物堆放,对跟踪垃圾收集器的总体工作方式和G1的工作应有一些一般性的了解。

我的应用程序有许多分配,可以很容易地称为“巨大分配”。

如果这确实是原因,那么当前的VM具有一些实验性选项可以更快地回收它们。

 [Object Copy (ms): Min: 6964.1, Avg: 6973.0, Max: 6989.5, Diff: 25.3,

Sum: 69730.4]
[Times: user=0.55 sys=46.58, real=7.02 secs]


这意味着在执行大部分应由内存访问而非系统调用组成的操作时,它将花费大部分时间在内核中。因此,交换活动或透明的大页面很可能是可疑的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569453.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号