在java程序运行时候,如果输出GC过程的日志,我们常用到以下的jvm参数。
-XX:+PrintGC 简洁的输出GC日志
-XX:+PrintGCDetails 详细的输出GC日志
我们可以在idea 加上jvm的参数。如图

运行代码
public static void main(String[] args){
{
byte[] b = new byte[1024 * 1024 * 5];
}
int a = 0;
System.gc();
System.out.println("gc over");
}
运行结果截图:

[GC (System.gc()) [PSYoungGen: 11710K->1112K(76288K)] 11710K->1120K(251392K), 0.0019247 secs] [Times: user=0.06 sys=0.00, real=0.00 secs]
解释:
GC 垃圾回收器
PSYoungGen 年轻代
11710K 年轻代垃圾回收前的大小
1112K 年轻代垃圾回收后的大小
(76288K) 年轻代的总大小
user Young GC用户耗时
sys Young GC系统耗时
real Young GC实际耗时
[Full GC (System.gc()) [PSYoungGen: 1112K->0K(76288K)] [ParOldGen: 8K->963K(175104K)] 1120K->963K(251392K), [Metaspace: 3437K->3437K(1056768K)], 0.0054721 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
解释:
Full GC 老年代GC,指发生在老年代的垃圾回收
PSYoungGen 年轻代
1112K 年轻代垃圾回收前的大小
0K 年轻代垃圾回收后的大小
(76288K) 年轻代的总大小
ParOldGen 老年代
8K 老年代垃圾回收前的大小
963K 老年代垃圾回收后的大小
(175104K) 老年代的总大小
1120K java堆垃圾回收前的大小
963K java堆垃圾回收后的大小
(251392K) java堆的总大小
user Young GC用户耗时
sys Young GC系统耗时
real Young GC实际耗时
本文详细介绍了在Java程序中使用特定的JVM参数输出GC日志的方法,包括简洁和详细的日志输出,并对日志中的各项指标进行了深入解读。
2万+

被折叠的 条评论
为什么被折叠?



