查看 GC 日志
设置 vm 参数
在Run/Debug configurations 的VM options文本框中输入:-XX:+PrintGCDateStamps -XX:+PrintGCDetails
实例代码
1 | public class GCTest { |
GC 日志
解读
- PSYoungGen:表示新生代,这个名称由收集器决定。PS是Parallel Scavenge收集器的缩写,新生代又分化 eden space、from space和to space这三部分
- ParOldGen:Parallel Scavenge收集器配套的老年代
- Metaspace: Parallel Scavenge收集器配套的永久代,JDK 1.8 移除了永久代,取而代之的是 Metaspace(元空间)
- total & used:总的空间和用掉的空间
第一行的 GC (System.gc())代表的这次 GC 是 Minor GC,原因是调用了 System.gc() 的方法。如果是因为新生代空间不足那么括号里应该为 Allocation Failure
[PSYoungGen 8032K ->808K (76288K)] 方块里面的表示 新生代是由 Parallel Scavenge 收集器收集的.
- 8032 K:是指新生代回收前该内存使用容量
- 808 K:是指新生代回收后该内存使用容量
- 76288 K:是指新生代总的容量大小
在方块外边的就是 Java 堆了
Times:user是用户态耗费的时间,sys是内核态耗费的时间,real是整个过程实际花费的时间一般优化看的是 real 时间。
Full GC 就是 Major GC,即老年代 GC ,参数同理。