理解GC日志

对于java程序员来说,理解GC日志才能更好地分析程序运行时垃圾回收状况,以及更好地调整jvm参数使程序长期更稳定地运行。


理解GC日志

http://book.51cto.com/art/201306/399236.htm 该文是周志明编写的《深入理解JAVA虚拟机》中的一节内容,较详细地说明了GC日志的格式,以及如何解读。

33.125: [GC [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K),
 0.0031680 secs]  
 
100.667: [Full GC [Tenured: 0K->210K(10240K), 0.0149142 secs] 4603K->210K(19456K),
 [Perm : 2999K->2999K(21248K)], 0.0150007 secs] 
 [Times: user=0.01 sys=0.00, real=0.02 secs] 

上面一段GC日志的内容,如果你能在不找相关资料的情况下,自己进行解读,那么就可以认为基本掌握了如何理解GC日志

不同的垃圾收集器,对应的gc日志中对新生代与老年代的称呼也不一样。以下是一份小结

收集器新生代老年代
Parallel ScavengePSYongGenParOldGen
SerialDefault New Generation 简称DefNew
ParNewParallel New Generation 简称ParNew
Serial OldTenured
Parallel OldParOldGen

案例

// gc类型为GC, 触发gc的原因是执行了System.GC()
// 新生代gc之前占用内存3965k,gc之后560k,新生代内部总共76288k
// 堆内存gc之前占用内存3965k,gc之后568k,堆内存总共251392k
[GC (System.gc()) 
   [PSYoungGen: 3965K->560K(76288K)] 3965K->568K(251392K), 0.0020730 secs
]  
[Times: user=0.01 sys=0.00, real=0.00 secs] 

//gc类型为Full GC,触发full gc的原因是执行了System.GC()
//新生代gc之前占用内存560k,gc之后0k,新生代内部总共76288k
//老年代gc之前占用内存8k,gc之后占用397k,老年代总内存175104k
//堆内存gc之前568k,gc之后397k,堆内存总共251392k
//元空间gc情况,分析类似
[Full GC (System.gc()) 
   [PSYoungGen: 560K->0K(76288K)] 
   [ParOldGen: 8K->397K(175104K)] 568K->397K(251392K), 
   [Metaspace: 3129K->3129K(1056768K)], 0.0043673 secs
] 
[Times: user=0.01 sys=0.01, real=0.00 secs] 

Heap
 PSYoungGen      total 76288K, used 1966K [0x000000076ab00000, 0x0000000770000000, 0x00000007c0000000)
  eden space 65536K, 3% used [0x000000076ab00000,0x000000076aceba38,0x000000076eb00000)
  from space 10752K, 0% used [0x000000076eb00000,0x000000076eb00000,0x000000076f580000)
  to   space 10752K, 0% used [0x000000076f580000,0x000000076f580000,0x0000000770000000)
 ParOldGen       total 175104K, used 397K [0x00000006c0000000, 0x00000006cab00000, 0x000000076ab00000)
  object space 175104K, 0% used [0x00000006c0000000,0x00000006c00635c8,0x00000006cab00000)
 Metaspace       used 3136K, capacity 4496K, committed 4864K, reserved 1056768K
  class space    used 344K, capacity 388K, committed 512K, reserved 1048576K

Process finished with exit code 0

在这里插入图片描述

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值