栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

GC调优案例

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

GC调优案例

目录

案例1:Fullgc和minorgc频繁

案例2:请求高峰期发生fullgc,单次暂停时间特别长(CMS)

案例3:老年代充裕情况下,发生fullgc


案例1:Fullgc和minorgc频繁

空间紧张,对象晋升阈值降低,导致本来很多生存周期很短的对象也会被晋升到老年代,进而导致频繁的fullgc的发生

方法:因为新生代内存太小,内存优化先从新生代开始,适当调大新生代内存,内存充裕,新生代垃圾回收就没那么频繁,同时增大了幸存区的空间以及晋升的阈值,就可以让很多生命周期较短的对象尽可能的被留在新生代,而不要晋升到老年代,进一步让老年代的fullgc也不容易出现,老年代的fullgc也不那么频繁了

案例2:请求高峰期发生fullgc,单次暂停时间特别长(CMS)

发生在cms重新标记阶段,会扫描整个堆内存,扫描老年代,新生代对象,新生代对象个数比较多,时间耗费长

方法:在重新标记发生之前,先对新生代对象做一次垃圾清理,清理之后存活对象少了,到了重新标记阶段需要查找和标记的对象也变得比以前少的多

案例3:老年代充裕情况下,发生fullgc

碎片过多或并发失败会导致老年代空间不足,但是经排查都不是

因为使用(CMS jdk1.7)采用永久代 永久代空间不足也会导致fullgc

1.8之后改为元空间,不由java控制,使用操作系统空间一般比较充裕

但是1.7之前由于永久代空间不足会触发整个堆的一次fullgc

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

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

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