- 一份摘自深入理解Java虚拟机中的一段GC日志
33.125:[GC[DefNew:3324K->152K(3712K), 0.0025925 secs]3324K->152K(11904K), 0.0031680 secs]
100.667:[Full GC[Tenured:0 K->210K(10240K), 0.0149142secs]4603K->210K(19456K), [Perm:2999K->2999K(21248K)], 0.0150007 secs][Times:user=0.01 sys=0.00, real=0.02 secs]
- 如何理解这一份GC日志
- 首先 33.125和100.667 这个数值的意义是代表GC发生的时间,该数字是GC启动以来的时间
- GC和Full GC则代表这次GC发生的类型,如果为Full GC。则代表这次GC是Stop The World的。如果通 过System.gc()方法触发的则会显示Full GC(System)
- DefNew、Tenured、Perm表示GC发生的区域,这里显示的区域名称与使用的GC收集器是密切相关的。
- 3324K->152K(3712K)则代表GC前该区域内已使用的容量->GC后该区域内已使用的容量(该区域内 的总容量)。之后的0.0025925 secs表示这次GC所占用的时间单位为秒
- 3324K->152K(11904K) 则GC前Java堆已使用容量->GC后Java堆已使用容量(Java堆总容量)。
- [Times:user=0.01 sys=0.00, real=0.02 secs]这里面的user、sys、real分别代表用户态消耗CPU的时间 和内核态消耗的CPU的时间和操作开始到结束所经历的时间
- 注意事项
不同收集器的GC日志格式是不相同的
网友评论