在java 9中处理PrintGCApplicationStoppedTime标志

时间:2017-08-28 04:52:42

标签: java garbage-collection java-9

我的应用程序正在使用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帖子表明该选项已被弃用,但是他的国旗打印的信息是否有其他选择,或者此信息不再可用?

2 个答案:

答案 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

在哪里挑选几个不同的例子来学习:

  1. -Xlog:gc=trace:file=gctrace.txt:uptimemillis,pids:filecount=5,filesize=1024
    
    • 使用&#39; gc&#39;标记的日志消息标记使用&#39; trace&#39;水平到 一个包含5个文件的旋转文件集,大小为1MB,带有基本名称 &#39; gctrace.txt&#39;并使用装饰品和uptimemillis&#39;和&#39; pid&#39;
    • 所有级别的消息的默认输出&#39;警告&#39;到了'stderr&#39; 仍然有效
  2. -Xlog:gc+rt+compiler*=debug,meta*=warning,svc*=off
    
    • 至少用&#39; gc&#39;标记的日志消息和&#39; rt&#39;和&#39;编译器&#39;标签 使用&#39; trace&#39;等级&#39; stdout&#39;但只有标记的日志消息 与&#39; meta&#39;水平&#39;警告&#39;或者&#39;错误&#39;并关闭所有 用&#39; svc&#39;
    • 标记的邮件
    • 所有级别的消息的默认输出&#39;警告&#39;到了'stderr&#39; 仍然有效

答案 1 :(得分:2)

另请参阅JDK 9发行说明,其中详细介绍了统一日志记录(-Xlog)的含义: http://jdk.java.net/9/release-notes#JDK-8145092 您将看到PrintGCApplicationStoppedTime和几个选项已被删除。