如何获取有关 GC 的 Java 9 打印 Java 8 样式的信息



在java 8上,给JVM一个命令行选项

-XX:+PrintGCDateStamps和-XX:+PrintGCDetails
导致JVM在每个GC操作中精确地在线打印,如下所示:
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 操作一行,最好列出操作后的运行时间和可用内存量。

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

但是,它仍然为每一轮 GC 打印六行。

本文详细介绍了缺少/已弃用的命令行选项。

简而言之,PrintGCDetails替换为 -Xlog:gc* .似乎没有记录在案的替代品-XX:+PrintGCDateStamps

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

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

最新更新