---
title: Java垃圾回收器和日志级别说明
description: "当前GC日志解析支持：CMS与G1垃圾回收器；其中Java 8版本支持PS、CMS和G1，Java 9及以后仅支持G1。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24/usermanual/kunpengoper_06_0016.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24/usermanual/kunpengoper_06_0016.html
indexId: 428cde57ec4c856be83674a132f9569f9b3a431ecf2f819ec4c4700afcab2dca77
---
# Java垃圾回收器和日志级别说明

当前GC日志解析支持：CMS与G1垃圾回收器；其中Java 8版本支持PS、CMS和G1，Java 9及以后仅支持G1。

GC日志页面如未获取到数据，请确认是否开启对应日志级别，在Java进程启动时添加参数，开启后即可查看数据。日志开启级别如表 日志开启级别对照表所示。

- 如果使用Java版本为Java 8，启动进程时未指定垃圾回收器，默认使用PS垃圾回收器。
  G1垃圾回收器：-XX:+UseG1GC；CMS垃圾回收器：-XX:+UseConcMarkSweepGC。

- Java 8启动添加日志打印参数：-verbose:gc -XX:+PrintHeapAtGC -Xloggc:/filepath/filename.log或-XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:/filepath/filename.log。
  其中filepath为日志保存路径，filename为日志名称，日志名称支持动态参数：%p（pid）、%t（系统时间戳）。

- Java 9及以后版本日志打印参数格式详见：  JEP 158: Unified JVM Logging(https://openjdk.org/jeps/158)
。


**表1 日志开启级别对照表**

| Java版本 | 垃圾回收器 | 日志开启级别 | 可查看页面 |
| --- | --- | --- | --- |
| Java 8 | G1 | \-verbose:gc | 线性度和细化分析中的详细阶段、Eden、Survivor、元数据区暂无数据。 |
| Java 8 | G1 | \-XX:+PrintGCDetails | 可显示全部数据，其中元数据区需有Full GC事件时才有相关记录。 |
| Java 8 | G1 | \-XX:+PrintHeapAtGC（可选） | 可显示内存占用变化的全部数据。 |
| Java 8 | CMS | \-verbose:gc | 线性度、细化分析中的详细阶段、Old、Young、Eden、Survivor、元数据区暂无数据。 |
| Java 8 | CMS | \-XX:+PrintGCDetails | 可显示除Eden、Survivor外的其余数据，其中元数据区需有Full GC事件时才有相关记录。 |
| Java 8 | CMS | \-XX:+PrintHeapAtGC（可选） | 可显示内存占用变化的全部数据。 |
| Java 9及之后版本 | G1 | \-Xlog:gc\*=info | GC标签可显示GC暂停相关信息，heap堆变化信息。 |
| Java 9及之后版本 | G1 | \-Xlog:gc\*=info | GC，CPU标签可显示线性度信息。 |
| Java 9及之后版本 | G1 | \-Xlog:gc\*=info | GC，Marking标签可显示并行阶段信息。 |
| Java 9及之后版本 | G1 | \-Xlog:gc\*=debug | GC，heap标签可查看Eden、Survivor、metaspace内存变化。 |
| Java 9及之后版本 | G1 | \-Xlog:gc\*=debug | phases标签可查看GC暂停细化的详情阶段。 |
