zoukankan      html  css  js  c++  java
  • JVM学习笔记——GC日志

    title: JVM学习笔记——GC日志
    date: 2018/9/3 10:28:30
    description: 最近开始着手JVM的学习,在这里把自己学习过程中的笔记分享出来,希望能帮到一些小伙伴,同时也是对自己的学习的一个梳理。

    GC日志

    • GC日志相关参数

      • -XX:+PrintGC 输出GC日志
      • -XX:+PrintGCDetails 输出GC的详细日志
      • -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
      • -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21: 53:59.234+0800)
      • -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
      • -Xloggc:../logs/gc.log 日志文件的输出路径
    • 理解GC日志

      0.247: [GC (Allocation Failure) [PSYoungGen: 6278K->776K(9216K)] 6278K->4880K(19456K), 0.0032813 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

      这是一个典型的GC日志的例子,接下来拆开解析一下日志的几个部分:

      • 0.247 是此次GC发生的时间,表示此次GC发生在JVM运行后0.247秒的时候。
      • [GC 表示此次GC的类型,类似的还有[Full GC,Full GC表示是带有停顿(Stop the World)的GC。
      • (Allocatioin Failure)表示此次GC发生的原因,如果是正常的GC,此处将会省略。Allocation Failure代表此次GC是由分配空间失败导致的。
      • [PSYoungGen:表示GC发生的区域及使用的收集器类型,采用Parallel Scavenge收集器时,新生代被称为“PSYoungGen”。
      • 方括号内部的6278K->776K(9216K)含义是GC前该内存区域已使用量->GC后该区域已使用量(该内存区域总容量)
      • 紧接着方括号外的6278K->4880K(19456K)含义是GC前JAVA堆已使用量->GC后JAVA堆已使用量(JAVA堆总容量)
      • 0.0032813 secs表示该GC的耗时,单位是秒。
      • [Times: user=0.00 sys=0.00, real=0.00 secs]是详细的时间数据,精确到小数点后两位,部分收集器不会给出该数据。这里的user、sys、real分别表示用户态消耗CPU时间、内核态消耗CPU时间、所经过的墙钟时间。
  • 相关阅读:
    Notes of Daily Scrum Meeting(12.18)
    Notes of Daily Scrum Meeting(12.17)
    Notes of Daily Scrum Meeting(12.16)
    Notes of Daily Scrum Meeting(12.8)
    Notes of Daily Scrum Meeting(12.5)
    Notes of Daily Scrum Meeting(12.3)
    Notes of Daily Scrum Meeting(11.12)
    Linux中profile、bashrc、bash_profile之间的区别和联系
    Linux GCC编译
    mysql 5.7.16 远程连接
  • 原文地址:https://www.cnblogs.com/qbzf-Blog/p/9577224.html
Copyright © 2011-2022 走看看