【发布时间】:2010-11-12 19:06:48
【问题描述】:
如何将详细垃圾回收输出重定向到文件? Sun 的网站显示了一个适用于 Unix 的示例,但它不适用于 Windows。
【问题讨论】:
标签: garbage-collection java jdk1.5
如何将详细垃圾回收输出重定向到文件? Sun 的网站显示了一个适用于 Unix 的示例,但它不适用于 Windows。
【问题讨论】:
标签: garbage-collection java jdk1.5
来自java -X的输出:
记录在案的here:
-Xloggc:文件名
设置详细的 GC 事件信息应重定向到的文件以进行日志记录。写入此文件的信息类似于
-verbose:gc的输出,其中包含自每个记录事件之前的第一个 GC 事件以来经过的时间。-Xloggc选项覆盖-verbose:gc如果两者都使用相同的java命令。例子:
-Xloggc:garbage-collection.log
所以输出看起来像这样:
0.590:[GC 896K->278K(5056K),0.0096650 秒] 0.906:[GC 1174K->774K(5056K),0.0106856 秒] 1.320:[GC 1670K->1009K(5056K),0.0101132 秒] 1.459:[GC 1902K->1055K(5056K),0.0030196 秒] 1.600:[GC 1951K->1161K(5056K),0.0032375 秒] 1.686:[GC 1805K->1238K(5056K),0.0034732 秒] 1.690:[完整 GC 1238K->1238K(5056K),0.0631661 秒] 1.874:[GC 62133K->61257K(65060K),0.0014464 秒]【讨论】:
如果您还想将输出通过管道传输到单独的文件,您可以这样做:
在 Sun JVM 上:
-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps
在 IBM JVM 上:
-Xverbosegclog:C:\whereever\jvm.log
【讨论】:
要补充以上答案,有一篇很好的文章:Patrick Peschlow 的Useful JVM Flags – Part 8 (GC Logging)。
摘录:
标志 -XX:+PrintGC(或别名 -verbose:gc)激活“简单”GC 日志记录模式
默认情况下,GC 日志写入标准输出。使用 -Xloggc:<file> 我们可以改为指定一个输出文件。请注意,此标志也会隐式设置 -XX:+PrintGC 和 -XX:+PrintGCTimeStamps。
如果我们使用 -XX:+PrintGCDetails 而不是-XX:+PrintGC,我们将激活“详细” GC 日志记录模式,该模式因所使用的 GC 算法而异。
使用 -XX:+PrintGCTimeStamps 将反映自 JVM 启动以来经过的实时时间(以秒为单位)的时间戳添加到每一行。
如果我们指定-XX:+PrintGCDateStamps,每一行都以绝对日期和时间开头。
【讨论】:
【讨论】:
-Xloggc 而不是 -Xlog:gc:...,您甚至会收到警告