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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取Java 9打印有关GC的Java 8风格信息相关的知识,希望对你有一定的参考价值。

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

-XX:+PrintGCDateStamps and -XX:+PrintGCDetails
results in the JVM printing exactly on line per each GC operation, like this:
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打印了六行。

答案

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

简而言之,PrintGCDetails-Xlog:gc*取代。 -XX:+PrintGCDateStamps似乎没有记录的替代品

另一答案

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

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

以上是关于如何获取Java 9打印有关GC的Java 8风格信息的主要内容,如果未能解决你的问题,请参考以下文章

如何获取控件句柄 vc

JVM系列第14讲:JVM参数之GC日志配置

GC日志查看和分析

Java默认GC

Java Linux下给程序加上gc日志打印的配置

Java Linux下给程序加上gc日志打印的配置