如何获取Java 9打印有关GC的Java 8风格信息

时间:2018-03-21 12:15:56

标签: java garbage-collection java-9

在Java 8上给JVM命令行选项

-XX:+PrintGCDateStamps and -XX:+PrintGCDetails
导致每个GC操作的JVM打印完全在线,如下所示:

2018-03-21T01:35:39.624-0700: [GC (Allocation Failure) [PSYoungGen: 328192K->23443K(382464K)] 328192K->23459K(1256448K), 0.0268406 secs] [Times: user=0.04 sys=0.01, real=0.03 secs]

2018-03-21T01:35:58.404-0700: [Full GC (Metadata GC Threshold) [PSYoungGen: 1952K->0K(348672K)] [ParOldGen: 457235K->256822K(873984K)] 459187K->256822K(1222656K), [Metaspace: 122374K->122350K(1163264K)], 0.9086909 secs] [Times: user=3.25 sys=0.01, real=0.91 secs]

如何让Java 9做类似的事情?每个GC操作一行,最好列出操作后经过的时间和可用的内存量。

我能得到的最接近的是在'info'级别启用GC日志记录,如下所示:-Xlog:gc = info。

但是,每轮GC仍会打印六行。

2 个答案:

答案 0 :(得分:0)

This article详细说明了缺少/弃用的命令行选项。

简而言之,PrintGCDetails已替换为-Xlog:gc*。似乎没有-XX:+PrintGCDateStamps

的文档替代品

答案 1 :(得分:0)

试试-Xlog:gc,gc+cpu=info::utc。或者阅读-Xlog:help并组装您自己的日志配置。

你真的不应该担心。最后,它只是字节数,两条较短的线与较长的线没有什么不同。另外,您可以随时压缩它们等。 如果GC日志行中的字符数会破坏您的系统,那么您已经遇到了更大的问题。