码迷,mamicode.com
首页 > 其他好文 > 详细

full gc太过频繁该如何处理

时间:2020-07-14 10:36:50      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:font   机制   永久代   mod   响应   工具   16px   isa   清理   

监控工具:jvisualVM、VisaulVM、jprofiler

JVM优化书籍:《Java性能优化权威指南》、《深入理解java虚拟机》

1.年轻代空间不足

2.per Gen(永久代)空间满

3.CMS GC时出现promotion failed和concurrent mode failure

4.统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间等
 

结论:

Full GC本身是好的,可以清除老年代的垃圾,但是如果Full GC发生的频率高了,就会影响性能,同时意味着系统内存分配机制出现问题。
因为Full GC本身执行时间较长(甚至超过1秒),而且除非采用G1 GC,否则其它的GC方式都会或多或少挂起所有线程执行(Stop-the-world),如果Full GC频繁发生,系统被挂起的次数就会增加,响应时间就会变慢。
同时,Full GC频繁发生,意味着你的内存分配机制存在问题,也许是内存泄露,有大量内存垃圾不断在老年代产生;也许是你的大对象(缓存)过多;也有可能是你的参数设置不好,minor GC清理不掉内存,导致每次minor GC都会触发Full GC;还有可能是你的老年代大小参数设置错误,老年代过小等等原因

full gc太过频繁该如何处理

标签:font   机制   永久代   mod   响应   工具   16px   isa   清理   

原文地址:https://www.cnblogs.com/messpro/p/13297646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!