`
blueswind8306
  • 浏览: 124593 次
  • 来自: ...
社区版块
存档分类
最新评论

如何看GC Debug日志内容

阅读更多
在学习GC机制时,发现有些东西通过普通的jvm参数是很难看到的,比如在ParallelGC触发悲观机制时,如果想看到此时新生代的平均晋升大小似乎就不可能的,发现在JDK源代码中有类似下面这样的if块:
if (PrintGCDetails && Verbose) {
  gclog_or_tty->print(result ? "  do scavenge: " : "  skip scavenge: ");
  gclog_or_tty->print_cr(" average_promoted " SIZE_FORMAT
    " padded_average_promoted " SIZE_FORMAT
    " free in old gen " SIZE_FORMAT,
    (size_t) policy->average_promoted_in_bytes(),
    (size_t) policy->padded_average_promoted_in_bytes(),
    old_gen->free_in_bytes());
  if (young_gen->used_in_bytes() <
      (size_t) policy->padded_average_promoted_in_bytes()) {
    gclog_or_tty->print_cr(" padded_promoted_average is greater"
      " than maximum promotion = " SIZE_FORMAT, young_gen->used_in_bytes());
  }
}

这里即使打开了-XX:+PrintGCDetails选项也是不行的,因为只有在Debug版本中,才能够设置-XX:+Verbose参数。

Debug版本的JDK的下载地址如下:
http://download.java.net/jdk6/6u25/promoted/b03/binaries/

或者使用如下方法自己搞一个Debug的Build(还没有试):
http://www.softwareengineeringsolutions.com/thoughts/Java-Debug-Build.htm

有了Debug版本的JDK后,在jvm参数中需要增加以下值:
引用
-Xloggc:./gc.log
-XX:+PrintGCDetails
-XX:+Verbose


运行程序后再看看gc.log,可以看到日志信息多了很多,找到触发fullGC的地方,可以看到以下日志:
引用
full after scavenge:  average_promoted 6291504 padded_average_promoted 6291504 free in old gen 4194256

很清楚,是因为MinorGC后的悲观策略检查发现平均晋升大小(6MB)>旧生代剩余大小(4MB)导致的FullGC。
0
1
分享到:
评论

相关推荐

    Tomcat gclog日志分析工具HPjmeter

    对tomcat的gclog日志进行分析,进行可视化展示,可以查看一些配置参数,检查是否软件是否运行正常

    IBM-GC日志分析工具

    IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具IBM gc 日志分析工具

    日志分析-gc日志分析

    日志分析类项目,对gc日志的分析,得出最优的系统优化方案

    有问题机器gc日志

    机器 gc 日志上传,用于分析问题,主要是 查看gc有无问题

    jvmgc日志分析工具

    适用于jvm运行生成的gc日志文件可视化分析

    JAVA gc日志分析工具GChisto及CMS GC补丁

    GChisto及CMS GC相应补丁文件,补丁文件未亲测。 This patch adds the following features and improvements when using CMS GC in incremental mode: detecting Full GCs corrected parsing errors when using -XX:...

    08.GC日志1

    08.GC日志1

    GChisto GC日志分析工具

    GChisto是一款优秀的GC日志分析工具。解压后双击GChisto.jar运行程序。enjoy it.

    JVM 输出 GC 日志导致 JVM 卡住

    JVM 输出 GC 日志导致 JVM 卡住

    GChisto(专业分析gc日志)

    GChisto是一款专业分析gc日志的工具,可以通过gc日志来分析:Minor GC、full gc的时间、频率等等,通过列表、报表、图表等不同的形式来反应gc的情况。虽然界面略显粗糙,但是功能还是不错的。 配置好本地的jdk环境...

    Java虚拟机GC日志分析

    主要介绍了Java虚拟机GC日志分析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    Go-gclog是一个go日志管理库

    gclog是一个go日志管理库,基于go标准库的log创建,拥有动态变更级别、自动切分、自动删除过期日志等功能

    java垃圾回收日志分析工具GCViewer

    java垃圾回收日志分析工具GCViewer,包内含有15年9月1日所能下载到的最新代码及代码打包的jar文件,双击即可执行。 本GCViewer是最新版本的,是JDK1.8编译并支持JDK1.8的GC 日志文件分析。 GCViewer是业内支持率很高...

    GCViewer-FullGC分析工具

    GCViewer 能否分析 java 程序 GC 日志,能否图表展示堆内存,年轻代,老年代,永久带以及full gc 的使用情况

    gcviewer-1.36

    gcviewer-1.36 jc日志分析工具.支持jdk1.8.. gcviewer-1.36 jc日志分析工具.支持jdk1.8..

    gcviewer_1.3.4_执行程序与示例

    [GCViewer](https://github.com/chewiebug/GCViewer) 是一款开源的GC日志分析工具。项目的 GitHub 主页对各个指标提供了完整的描述信息 你需要安装了JDK或者Java. 解压之后, 然后双击点击 start.cmd 当然, 直接在...

    gcviewer.rar

    gcviewer是一款不错的可视化gc查看工具 能分析 java 程序 GC 日志,非常好的一款工具。值得推荐

    SENSOR_GC1054.rar_1054-sensor_SENSOR_GC1054_gc1054

    SENSOR_GC1054的寄存器配置以及基本图像配置

Global site tag (gtag.js) - Google Analytics