查看和分析 GC(垃圾收集)日志是 Java 性能调优和排查内存溢出(OOM)问题的核心技能。以下是关于如何输出、分析 GC 日志,以及调优时重点关注指标的详细指南。 --- 第一部分:如何查看和分析 GC 日志 1. 开启 GC 日志输出 要想查看 GC 日志,首先需要在启动 Java 应用时配置相应的 JVM 参数。注意 JDK 8 和 JDK 9+ 的参数完全不同。 JDK 8 及之前版本: JDK 9 及之后版本(引入了统一日志框架 Unified Logging): (注: 表示打印所有与 GC 相关的标签日志, 表示时间戳,滚动配置也集成在了这一条参数中。) 2. 手动阅读 GC 日志(以 JDK 8 的 Parallel GC 为例) 一段典型的 Minor GC(Young GC)日志如下: 日志拆解分析: / : GC 发生的绝对时间与相对 JVM 启动的时间。 : 触发原因。这里是因为年轻代空间不足(分配失败)触发了 Minor GC。如果是 则是代码显式调用触发。 : 年轻代情况。GC 前使用了 33M,GC 后剩下 5M,年轻代总大小 38M。 : 整个堆...