如何将详细垃圾收集输出重定向到文件?

时间:2009-07-21 20:44:26

标签: garbage-collection java jdk1.5

如何将详细垃圾收集输出重定向到文件? Sun的网站显示了Unix的一个例子,但它不适用于Windows。

4 个答案:

答案 0 :(得分:86)

来自java -X的输出:

    -Xloggc:<file>    log GC status to a file with time stamps

记录here

  

<强> -Xloggc:文件名

     

设置应将重定向的GC事件信息重定向到的文件以进行日志记录。写入此文件的信息类似于-verbose:gc的输出,其中包含自每个记录事件之前的第一个GC事件以来经过的时间。如果两者都使用相同的-Xloggc命令,则-verbose:gc选项会覆盖java

     

示例:

    -Xloggc:garbage-collection.log

所以输出看起来像这样:

0.590: [GC 896K->278K(5056K), 0.0096650 secs]
0.906: [GC 1174K->774K(5056K), 0.0106856 secs]
1.320: [GC 1670K->1009K(5056K), 0.0101132 secs]
1.459: [GC 1902K->1055K(5056K), 0.0030196 secs]
1.600: [GC 1951K->1161K(5056K), 0.0032375 secs]
1.686: [GC 1805K->1238K(5056K), 0.0034732 secs]
1.690: [Full GC 1238K->1238K(5056K), 0.0631661 secs]
1.874: [GC 62133K->61257K(65060K), 0.0014464 secs]

答案 1 :(得分:36)

如果另外要将输出通过管道传输到单独的文件,可以执行以下操作:

Sun JVM:

-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps

IBM JVM:

-Xverbosegclog:C:\whereever\jvm.log 

答案 2 :(得分:8)

为了补充上述答案,Patrick Peschlow撰写了一篇好文章:Useful JVM Flags – Part 8 (GC Logging)

简短摘录:

标记 -XX:+PrintGC (或别名-verbose:gc)激活“简单”GC记录模式

默认情况下,GC日志将写入stdout。使用 -Xloggc:<file> ,我们可以改为指定输出文件。请注意,此标记也会隐式设置-XX:+PrintGC-XX:+PrintGCTimeStamps

如果我们使用 -XX:+PrintGCDetails 而不是-XX:+PrintGC,我们会激活“详细”GC记录模式,该模式因使用的GC算法而异。

使用 -XX:+PrintGCTimeStamps 一个时间戳,反映自JVM开始以来几秒内传递的实时时间。

如果我们指定 -XX:+PrintGCDateStamps ,则每行都以绝对日期和时间开头。

答案 3 :(得分:3)

Java 9&amp;统一JVM日志记录

JEP 158为JVM的所有组件引入了一个通用的日志系统,它将改变(和IMO简化)日志记录如何与GC一起工作。 JEP 158添加了一个新的命令行选项来控制来自JVM的所有组件的日志记录:

-Xlog

例如,以下选项:

-Xlog:gc

会使用gc级别将标记有info标记的邮件记录到stdout。或者这个:

-Xlog:gc=debug:file=gc.txt:none

会将使用gc级别的debug标记标记的邮件记录到名为gc.txt且没有装饰的文件中。有关更详细的讨论,您可以查看JEP页面中的示例。

相关问题