JVM---GC-GC日志
/** * 【GC---日志分析】 * <显示GC日志> * 输出GC日志 * -XX:+PrintGC 或 -verbose:gc * 输出GC的详细日志 * -XX:+PrintGCDetails * 输出GC的时间戳(基准时间) * -XX:+PrintGCTimeStamps * 输出GC的时间戳(日期时间) * -XX:+PrintGCDateStamps * 在进行GC前后打印出堆的信息 * -XX:+PrintHeapAtGC * 日志文件输出路径 * -Xloggc:.../logs/gc.log * * <说明> * [GC ...]、[Full GC ...] * 垃圾回收类型,Full说明发生了STW; * * 新生代: * Serial GC 名字是 Default New Generation,显示为 [DefNew...] * ParNew GC 名字是 Parallel New Generation,显示为 [ParNew...] * Parallel Scavenge GC 名称是 [PSYoungGen...] * * 老年代: * Parallel Old GC ,显示为 [ParOldGen...] * * G1 GC,显示为 garbage-first heap * * eg: * [GC (Allocation Failure) [PSYoungGen: 1859K->544K(20992K)] 1859K->552K(69120K), 0.0007856 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] * a, Allocation Failure 分配内存失败 * b, [PSYoungGen: 1859K->544K(20992K)] 1859K->552K(69120K) * [PSYoungGen: 1859K->544K(20992K)] Parallel Scavenge GC 回收新生代,新生代大小20992K,回收前大小1859K,回收后大小544K; * 1859K->552K(69120K) 新生代+老年代总大小69120K,回收前新生代+老年代大小1859K,回收后新生代+老年代大小552K * * [Full GC (Allocation Failure) [PSYoungGen: 544K->0K(20992K)] [ParOldGen: 16K->405K(48128K)] 560K->405K(69120K), [Metaspace: 3121K->3121K(1056768K)], 0.0047044 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] * * <GC日志分析工具> * -Xloggc:.../logs/gc.log 将日志导出到指定目录的文件; * * 常用工具: * gceasy.io 在线工具 * GCViewer 本地jar工具 * ... */