最近在看《深入理解java虚拟机》这本书,在看到第3章第二节验证java虚拟机使用的不是引用计算法来判断对象是否被GC回收时。看到了GC日志,不是很清楚是什么意思,在网上搜索资料,自己总结了一下。
如果想要查看java的GC日志,可以通过在java命令加入下列参数进行配置。
-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:../logs/gc.log 日志文件的输出路径
一般加入下列三个参数就好了(博主用的idea,直接在Run/Debug Configurations的VM options配置参数)
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:./gc.log 可自定义日志输出文件
就以我遇到的这个问题为例来分析一下
java代码
public class GCTest {
public Object instance = null;
private static final int _1MB = 1024*1024;
private byte[] bigSize = new byte[2*_1MB];
public static void