GC日志的查看(日志意思)

首先查看GC日志需要在启动时-XX:+PrintGCDetails,在idea中

下面来分析一下GC日志直接贴图:

 

先看头 [GC (Allocation Failure)  这个标识youngGC发生在young区的GC;[Full GC (Ergonomics) 是fullGC是发生在old区的GC

分开来看,先看youngGC,[PSYoungGen: 1362K->297K(2048K)] (即第一张图youngGC第二个框的数据),表示在执行youngGC前young区占用了1362k的空间,GC后占用了297k的空间,总的大小是2048k,这里GC后,大部分被回收,也有少量的进入了old区。4692K->3627K(9216K)(即第一张图youngGC第三个框的数据),表示youngGC前占用了4692k的数据,GC后占用了3627k数据;最后的0.0003604表示执行GC花费的时间单位秒。画个表格来解释(占用空间)

 GC前GC后总容量耗时
young区1362K297K2048K0.0003604
堆内存4692K3627K9216K0.0003604
old区(推算)

1362-297=1065即young区被回收容量

4692-3627=1065即整个堆内存被回收容量

1065(young)-1065(heap)=0刚刚好此次回收没有对象

进入old区,但不是每次都不会,可以看下面一条。

再看fullGC,[PSYoungGen: 1480K->0K(2048K)](即第一张图fullGC第二个框的数据)表示young区状态,GC前有1480k,GC后被清空。[ParOldGen: 6678K->1745K(7168K)] 8158K->1745K(9216K) (即第一张图fullGC第三个框的数据)也即GC前old区占用空间是6678K,GC后占用空间1745K,总空间7168K。堆GC前占用空间8158K,GC后占用空间1745K,总空间9216K。[Metaspace: 3512K->3512K(1056768K)]是元空间信息。画个表格来解释(占用空间):

 

然后看第二张图,当FullGC回收时多次回收后均没有释放空间时,就会抛出异常OOM:java.lang.OutOfMemoryError: Java heap space。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值