我的应用程序正在使用gc标志“PrintGCApplicationStoppedTime”,但是当我使用Java 9运行它时,它失败并出现以下错误:
Unrecognized VM option 'PrintGCApplicationStoppedTime'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
This帖子表明该选项已被弃用,但是他的国旗打印的信息是否有其他选择,或者此信息不再可用?
答案 0 :(得分:4)
那里很少有人知道:
首先,@ apangin的答案here很好地总结了PrintGCApplicationStoppedTime
打印safepoints内所花费的时间。
为了将更多细节转储到应用程序的安全点,您最好使用:
-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1
其次,Java 9计划实现Unified GC logging under JEP#271同时使用Unified JVM Logging under JEP#158
继续使用哪个-Xlog
作为新的命令行选项来控制来自JVM的所有组件的日志记录。因此,日志记录将遵循语法(引用):
-Xlog[:option]
option := [<what>][:[<output>][:[<decorators>][:<output-options>]]]
'help'
'disable'
what := <selector>[,...]
selector := <tag-set>[*][=<level>]
tag-set := <tag>[+...]
'all'
tag := name of tag
level := trace
debug
info
warning
error
output := 'stderr'
'stdout'
[file=]<filename>
decorators := <decorator>[,...]
'none'
decorator := time
uptime
timemillis
uptimemillis
timenanos
uptimenanos
pid
tid
level
tags
output-options := <output_option>[,...]
output-option := filecount=<file count>
filesize=<file size in kb>
parameter=value
在哪里挑选几个不同的例子来学习:
-Xlog:gc=trace:file=gctrace.txt:uptimemillis,pids:filecount=5,filesize=1024
-Xlog:gc+rt+compiler*=debug,meta*=warning,svc*=off
答案 1 :(得分:2)
另请参阅JDK 9发行说明,其中详细介绍了统一日志记录(-Xlog)的含义: http://jdk.java.net/9/release-notes#JDK-8145092 您将看到PrintGCApplicationStoppedTime和几个选项已被删除。