java GC日志解析

2020-07-20  本文已影响0人  kingTao_

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的数据也保存在年轻代中。
上一篇下一篇

猜你喜欢

热点阅读