美文网首页JavaSE程序员java进阶干货
慎重!是否需要GCLockerInvokesConcurrent

慎重!是否需要GCLockerInvokesConcurrent

作者: 美团Java | 来源:发表于2017-10-25 20:16 被阅读813次

简书 占小狼,转载请注明原创出处,谢谢!

对于System.gc(),可以采用-XX:+DisableExplicitGC直接避免FGC,同时也可以使用-XX:+UseConcMarkSweepGC -XX:+ExplicitGCInvokesConcurrent使用并发的方式执行FGC,当看到GCLockerInvokesConcurrent参数时,以为执行原理差不多,可以减缓GC Locker引起的GC,结果会让你失望。

如果使用了-XX:+UseConcMarkSweepGC -XX:+GCLockerInvokesConcurrent,当发生GC Locker引起的GC时,会触发类型为VM_GenCollectFullConcurrent的VM OP,实现如下:

1、A 逻辑是补偿一次YGC过程,虽然有可能这是一次多余的操作
2、B 逻辑,看注释是会推进一次CMS GC,具体是怎么个推进法,可以看下CMSCollector::request_full_gc的实现:

3、C 逻辑,设置标识_full_gc_requested,它有什么用?
4、通知在CGC_lock等待的线程

看下标识_full_gc_requested的作用:
CMS中的background collector动作,默认每隔2秒会判断一次是否需要触发,在判断方法中的最开始,有这样一段逻辑:

没错,只要标识_full_gc_requested为true,不管触发CMS的条件(比如老年代的使用率超过阈值等)是不是满足,都会触发这次CMS GC,很显然,在老年代使用率很低的时候也会被触发。

那为什么要这么实现呢?

唯一的解释:在JNI进入critical时,应线程触发的YGC,会直接在老年代分配对象,而这次提早的CMS正好可以清理这些临时对象。

还有什么解释?

相关文章

  • 慎重!是否需要GCLockerInvokesConcurrent

    简书 占小狼,转载请注明原创出处,谢谢! 对于System.gc(),可以采用-XX:+DisableExplic...

  • 【深入分析】PressOne 的投资价值-第60天

    昨天写文章思考是否重仓PressOne ,因为投资是需要慎重的思考。 不懂不要投 今天基本看完了prs相关的资料(...

  • 写文需要慎重

    今天,写了一篇《女人柔似水,家庭福相随》的文章,主要是想说女人温柔持家,会让家庭过得越来越美满幸福。 文中我是以一...

  • 友谊长存

    如果每位经理都能慎重地对待员工测评,定期思考每个员工是不是对应岗位的最佳人选,是否需要招聘新人代替现有员工,那么,...

  • 你只看到市场下跌,我却看到比特币的机会!

    钱包套利搬砖此类确实需要谨慎,只要把本金交到别人手上的事,一定要慎重,慎重,再慎重! 其实大家看到的这些利空消息,...

  • 关于借钱 - 草稿

    你认为借钱需要慎重思考吗?你的好心有没有换来你的煎熬? 相信很多人都会回答,当然需要慎重思考。理由是,钱很...

  • 复读一定能涨分吗?什么情况下复读

    复读不一定能涨分,有时反而会考得更差,会降分,所以是否复读一定要慎重再慎重。 每年的高考过后,总有一些人纠结是否复...

  • 最近的一些工作笔记

    随着功能更迭,尤其是在处理后台系统需求时,我们需要慎重权衡附加的交互优化是否能带来等效的多方体验优化。之前组里有个...

  • 合伙做生意需要慎重

    工作累了,感觉辛苦还不挣钱,总想去当老板,觉得老板吆五喝六的,能赚太多钱。 创业初期,不管做什么生意都需要有资金启...

  • 选择远嫁需要慎重

    关于远嫁,这个话题时常会成为我们办公室讨论的热点。 现在公司招聘,象我们公司都是校招,也就是招聘广告都是面向在校的...

网友评论

  • hongrm:每天都当做早报来读,受益匪浅!
  • hongrm:每次看完您写的博客,我都想辞职回炉重造了。。。。。。
    美团Java:@hongrm 我么有学过c++,惭愧
    hongrm:@占小狼 说错了,应该是回校重造,毕竟在大学的时间不多了!对了,您是在什么时候学的C++的呢?
    美团Java:@hongrm 在职重造也是可以的啊
  • chenssy:工作严重不饱和,要跟你老大反应下:sunglasses::sunglasses::sunglasses:
    美团Java:@chenssy 我都是挑灯夜读
  • 神司马:楼主现在哪里上班呢,蚂蚁的职位考虑吗

本文标题:慎重!是否需要GCLockerInvokesConcurrent

本文链接:https://www.haomeiwen.com/subject/nndcpxtx.html