深入理解Java 虚拟机(周志明)笔记(五)——垃圾收集器(四)

 2019-12-22 11:24  阅读(1263)
文章分类:JVM

5.1.4.查看GC日志

1.虚拟机提供了 -XX:+PrintGCDetails 参数,告诉虚拟机在发生垃圾收集行为时打印内存回收日志,并且在进程退出的时候输出当前的内存各区域分配情况。

2.每个收集器的日志格式有所不同,但是虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性。例如

日志一:

33.125:[GC [DefNew:3324->152K(3712K),0.0025925 secs] 3324K->152K(11904K),0.0031680 secs]

日志二:

100.67:[Full GC [Tenured:0K->210K(10240K),0.0149141 secs]4603K->210K(19456K),[Perm:299K->2999K(21248K)],0,015007 secs] [Times:

user=0.01 sys=0.00,real=0.02 secs]

解释:1最前面的数字“33.125:”和“100.67:” 表示GC发生的时间,表示从Java虚拟机启动以来经过的秒速

  1. “[GC” 和 “[Full GC ‘说明垃圾收集的停顿类型,而不是区分新生代和老年代。

Full 表示这次GC发生了Stop The World类型

若是调用System.gc()方法所触发的收集,那么将显示 Full GC(System)

  1. [DefNew [Tenured [Perm 表示GC发生的区域 此处名称与所用收集器相关

新生代: Serial(Client下默认的收集器): Default New Generation 即显示 DefNew

ParNew : ParNew New Generation 即显示 ParNew

Parallel Scavenge: 显示PSYougGen

老年代:与新生代相似

  1. 方括号以内 3324->152K(3712K) :GC前该内存区域已使用容量->GC后该内存区域已使用容量(该内存区域总容量)

方括号以外 4603K->210K(19456K) :GC前Java堆已使用容量->GC后Java堆已使用容量(Java堆总容量)

  1. 0,015007 secs] [Times: user=0.01 sys=0.00,real=0.02 secs]

表示GC所占用的时间 [Times: user=0.01 sys=0.00,real=0.02 secs]是详细描述所用时间

点赞(1)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 深入理解Java 虚拟机(周志明)笔记(五)——垃圾收集器(四)

相关推荐