GC日志如何开启和查看

参考答案

常见的 GC 日志开启参数包括:

  • -Xloggc:filename,指定日志文件路径。
  • -XX:+PrintGC,打印 GC 基本信息。
  • -XX:+PrintGCDetails,打印 GC 详细信息。
  • -XX:+PrintGCTimeStamps,打印 GC 时间戳。
  • -XX:+PrintGCDateStamps,打印 GC 日期与时间。
  • -XX:+PrintHeapAtGC,打印 GC 前后的堆、方法区、元空间可用容量变化。
  • -XX:+PrintTenuringDistribution,打印熬过收集后剩余对象的年龄分布信息,有助于 MaxTenuringThreshold 参数调优设置。
  • -XX:+PrintAdaptiveSizePolicy,打印收集器自动设置堆空间各分代区域大小、收集目标等自动调节的相关信息。
  • -XX:+PrintGCApplicationConcurrentTime,打印 GC 过程中用户线程并发时间。
  • -XX:+PrintGCApplicationStoppedTime,打印 GC 过程中用户线程停顿时间。
  • -XX:+HeapDumpOnOutOfMemoryError,堆 oom 时自动 dump。
  • -XX:HeapDumpPath,堆 oom 时 dump 文件路径。

Java 9中JVM日志模块进行了重构,参数格式发生变化。

GC日志输出的格式,会随着上面的参数不同而发生变化。关注各个分代的内存使用情况、垃圾回收次数、垃圾回收的原因、垃圾回收占用的时间、吞吐量、用户线程停顿时间。

借助工具可视化工具可以更方便的分析,在线工具 GCeasy;离线版可以使用 GCViewer

如果现场环境不允许,可以使用 JDK 自带的 jstat 工具监控观察 GC 情况。

 

以上,是JVM面试题【GC日志如何开启和查看 】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧