如何获取Java 9打印有关GC的Java 8风格信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取Java 9打印有关GC的Java 8风格信息相关的知识,希望对你有一定的参考价值。
在java 8上给JVM一个命令行选项
-XX:+PrintGCDateStamps and -XX:+PrintGCDetailsresults 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风格信息的主要内容,如果未能解决你的问题,请参考以下文章