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

 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虚拟机启动以来经过的秒速

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

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

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

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

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

                                      ParNew  : ParNew New Generation 即显示 ParNew

                                      Parallel Scavenge: 显示PSYougGen

                             老年代:与新生代相似

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

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

                        5. 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]是详细描述所用时间

    原文作者:java虚拟机
    原文地址: https://blog.csdn.net/baidu_21234955/article/details/50850694
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞