一.命令
| -Xlog:gc | 打印gc简要日志消息,java9之后统一该格式 -Xlog:gc:a.log 日志输出到指定文件 |
-XX:+PrintGCDetails (java8) |
|---|---|---|
| -Xlog:gc+heap=debug | 每次gc都打印堆栈信息 | |
| -XX:+UseConcMarkSweepGC | ParNew + CMS + Serial Old组合的收集器,CMS运行期间预留的内存无法满足程序需要,就会出现一次Concurrent Mode Failure失败,这时虚拟机将启动后备预案。临时启用Serial Old收集器来重新进行老年代的垃圾收集。 |
二.日志格式

[GC (Allocation Failure) [PSYoungGen: 2559K->512K(2560K)] 2706K->907K(9728K), 0.0012981 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
| GC | GC类型,YoungGC | |||
|---|---|---|---|---|
| [PSYoungGen: 2559K->512K(2560K)] | 2559K—YGC前新生代内存占用 512K—YGC后新生代内存占用 2560K—新生代总共大小 |
|||
| 2706K->907K(9728K) | 2706K—YGC前JVM堆内存占用 907K—YGC后JVM堆内存占用 9728K—JVM堆总大小 |
|||
| 0.0012981 secs | YGC耗时 |

[Full GC (Ergonomics) [PSYoungGen: 1022K->328K(2048K)] [ParOldGen: 7135K->7133K(7168K)] 8158K->7462K(9216K), [Metaspace: 28425K->28425K(1075200K)], 0.0215068 secs] [Times: user=0.04 sys=0.00, real=0.02 secs]
