在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仍会打印六行。
答案 0 :(得分:0)
This article详细说明了缺少/弃用的命令行选项。
简而言之,PrintGCDetails
已替换为-Xlog:gc*
。似乎没有-XX:+PrintGCDateStamps
答案 1 :(得分:0)
试试-Xlog:gc,gc+cpu=info::utc
。或者阅读-Xlog:help
并组装您自己的日志配置。
你真的不应该担心行。最后,它只是字节数,两条较短的线与较长的线没有什么不同。另外,您可以随时压缩它们等。 如果GC日志行中的字符数会破坏您的系统,那么您已经遇到了更大的问题。