美文网首页
java GC日志解析

java GC日志解析

作者: kingTao_ | 来源:发表于2020-07-20 13:44 被阅读0次

    java GC详解

    关键词:
    [GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.0023988 secs] 522739K->156516K(1322496K), 0.0025301 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
    
    GC:
        表明进行了一次GC,前面没有FULL修饰,表明为一次minor gc(同样会STW,stop the world,停止其他线程工作)
        
    Allocation Failure:
        表明本次GC是因为年轻代中没有足够的空间存储新数据了
    
    ParNew:
        表明本次GC发生在年轻代并且使用的ParNew垃圾收集器(ParNew垃圾收集器是serial的一个多线程版本),该收集器采用复制算法回收内存
        
    367523K->1293K(410432K):
        gc前该区域内存使用量
        gc后该区域内存使用量
        该区域总内存量
        
    0.0023988 secs:
        本次gc耗时(秒)
    
    522739K->156516K(1322496K):
        堆区垃圾回收前的大小
        堆区垃圾回收后的大小
        堆区总大小
        
    Times: user=0.04 sys=0.00, real=0.01 secs:
        分别表示用户态耗时
        内核态耗时
        总耗时
    
    结论:
    该次GC新生代减少了367523-1293=366239K
    
    Heap区总共减少了522739-156516=366223K
    
    366239 – 366223 =16K,说明该次共有16K内存从年轻代移到了老年代,可以看出来数量并不多,说明都是生命周期短的对象,只是这种对象有很多。
    
    我们需要的是尽量避免Full GC的发生,让对象尽可能的在年轻代就回收掉,所以这里可以稍微增加一点年轻代的大小,让那17K的数据也保存在年轻代中。
    

    相关文章

      网友评论

          本文标题:java GC日志解析

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