java fullgc如何检测
检测 Java Full GC 的方法
使用 JVM 内置工具
通过 -XX:+PrintGCDetails 和 -XX:+PrintGCDateStamps 参数启动 Java 应用,日志中会记录 Full GC 事件。示例日志片段:
2023-10-01T10:00:00.123+0800: [Full GC (Allocation Failure) ...]
通过 JMX 监控
使用 java.lang.management.GarbageCollectorMXBean 接口获取 GC 信息。示例代码:

List<GarbageCollectorMXBean> gcBeans = ManagementFactory.getGarbageCollectorMXBeans();
for (GarbageCollectorMXBean bean : gcBeans) {
System.out.println(bean.getName() + " - Count: " + bean.getCollectionCount() + ", Time: " + bean.getCollectionTime() + "ms");
}
使用 VisualVM 或 JConsole
这些图形化工具提供内存和 GC 监控面板,可直接观察到 Full GC 的频率和耗时。

借助第三方工具
- GCEasy:上传 GC 日志文件自动分析 Full GC 根本原因。
- Prometheus + Grafana:通过
jvm_gc_collection_seconds_count指标监控 Full GC 次数。
关键指标关注点
- Full GC 触发频率(如每小时超过 2 次可能存在问题)。
- 单次 Full GC 耗时(超过 1 秒需优化)。
- 老年代内存占用趋势(持续接近 100% 会导致频繁 Full GC)。
日志分析技巧
结合 -Xloggc:<file> 参数将 GC 日志输出到文件,使用工具(如 GCViewer)可视化分析 Full GC 模式。






