Java 11中是否有垃圾回收JVM args的替代品?

mar*_*wun 15 java logging garbage-collection java-11

在Java 11中,不再支持与GC日志记录有关的许多JVM arg。如果我们仍然要使用GC日志记录,可以用什么替换它们?特别是,这与以下JVM参数有关:

-Xlog:gc:work/logs/gc.log
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-XX:+PrintGCApplicationStoppedTime
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles
-XX:GCLogFileSize
Run Code Online (Sandbox Code Playgroud)

谢谢。

Nam*_*man 14

您的清单<arguments, current mapping, reasons>如下:

-XX:+PrintGCTimeStamps    
-XX:+PrintGCDateStamps    ==>  Not applicable now. 
Run Code Online (Sandbox Code Playgroud)

原因:时间/日期戳由框架记录。


-XX:+PrintGCDetails     ==>     -Xlog:gc*
Run Code Online (Sandbox Code Playgroud)
-XX:+PrintGCApplicationStoppedTime ==> -Xlog:safepoint
Run Code Online (Sandbox Code Playgroud)

注意PrintGCApplicationConcurrentTimePrintGCApplicationStoppedTime记录在相同的标签上,并且在新的记录中没有分开。


-XX:+UseGCLogFileRotation     ==>  Not Applicable
Run Code Online (Sandbox Code Playgroud)

注意:与记录的内容相同PrintTenuringDistribution


-XX:NumberOfGCLogFiles    
-XX:GCLogFileSize          ==>  Not Applicable
Run Code Online (Sandbox Code Playgroud)

原因:日志轮换由框架处理。

参考:-我已参考文档,并请您遵循以获取此类迁移详细信息。

  • 文件大小以字节为单位,除非您附加 K,所以您可能应该使用 filesize=1024K。即使在 https://docs.oracle.com/en/java/javase/14/docs/specs/man/java.html 上也是错误的,其中有一个示例显示“filesize=1024”,但后来显示“filesize=”文件大小,带有可选的 K、M 或 G 后缀` (2认同)

Swa*_*wal 7

它确实随时间打印日期

-Xlog:gc*:verbose_gc.log:time

[2019-05-13T14:01:03.356+0530] Heap region size: 1M
[2019-05-13T14:01:03.357+0530] Using G1
Run Code Online (Sandbox Code Playgroud)

注意:- 使用了 JDK 11


oca*_*sen 6

顺便说一句,尽管Java 11中没有NumberOfGCLogFilesGCLogFileSize选项,但仍可以设置滚动文件的大小和计数。例如:

java -Xlog:gc*,safepoint:gc.log:time,uptime:filecount=100,filesize=128K ...
Run Code Online (Sandbox Code Playgroud)