时间:2021-05-19
本文主要研究一下java9 gc log参数的迁移。
统一JVM及GC的Logging
java9引进了一个统一的日志框架,把gc相关的log输出及配置也给纳入进来了。
相关JEP(JDK Enhancement Proposal)
Xlog语法
-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=valuewhat
主要是配置tag及level
tag
其中all代表所有的tag,其他的如下:
add,age,alloc,annotation,aot,arguments,attach,barrier,biasedlocking,blocks,bot,breakpoint,bytecode,census,class,classhisto,cleanup,compaction,comparator,constraints,constantpool,coops,cpu,cset,data,defaultmethods,dump,ergo,event,exceptions,exit,fingerprint,freelist,gc,hashtables,heap,humongous,ihop,iklass,init,itables,jfr,jni,jvmti,liveness,load,loader,logging,mark,marking,metadata,metaspace,method,mmu,modules,monitorinflation,monitormismatch,nmethod,normalize,objecttagging,obsolete,oopmap,os,pagesize,parser,patch,path,phases,plab,preorder,promotion,protectiondomain,purge,redefine,ref,refine,region,remset,resolve,safepoint,scavenge,scrub,setting,stackmap,stacktrace,stackwalk,start,startuptime,state,stats,stringdedup,stringtable,subclass,survivor,sweep,system,task,thread,time,timer,tlab,unload,update,verification,verify,vmoperation,vtables,workganglevel
主要分off,trace,debug,info,warning,error
output
- stdout(`Sends output to stdout`)- stderr(`Sends output to stderr`)- file=filename(`Sends output to text file(s)`)有如上三种,其中指定file的话,可以使用%p变量表示当前jvm的pid,用%t表示jvm的启动时间戳。比如
-Xlog:gc:demoapp-gc-%p-%t.log输出的文件名如下:
demoapp-gc-1678-2018-03-01_21-44-18.logdecorators
不指定的话,默认是uptime, level, and tags这三个。比如
[3.080s][info][gc,cpu ] GC(5) User=0.03s Sys=0.00s Real=0.01s实例
-Xlog:gc=trace:file=gctrace.txt:uptimemillis,pid:filecount=5,filesize=1024tag为gc,levle为trace,rotate文件数为5,每个文件1M,文件名为gctrace.txt,decrotators为uptimemillis和pid
输出实例
[1110ms][1867] GC(2) Pause Remark 17M->17M(256M) 2.024ms[1110ms][1867] GC(2) Finalize Live Data 0.000ms[1110ms][1867] GC(2) Pause Cleanup 17M->17M(256M) 0.177ms[1112ms][1867] GC(2) Concurrent Cycle 7.470ms[2951ms][1867] GC(3) Pause Initial Mark (Metadata GC Threshold) 149M->30M(256M) 27.175ms[2951ms][1867] GC(4) Concurrent Cycle[2972ms][1867] GC(4) Pause Remark 32M->32M(256M) 5.132ms[2974ms][1867] GC(4) Finalize Live Data 0.000ms[2974ms][1867] GC(4) Pause Cleanup 32M->32M(256M) 0.214ms[2976ms][1867] GC(4) Concurrent Cycle 25.422ms旧版GC相关参数迁移
Legacy Garbage Collection (GC) Flag Xlog Configuration Comment G1PrintHeapRegions -Xlog:gc+region=trace Not Applicable GCLogFileSize No configuration available Log rotation is handled by the framework. NumberOfGCLogFiles Not Applicable Log rotation is handled by the framework. PrintAdaptiveSizePolicy -Xlog:ergo*=level Use a level of debug for most of the information, or a level of trace for all of what was logged for PrintAdaptiveSizePolicy. PrintGC -Xlog:gc Not Applicable PrintGCApplicationConcurrentTime -Xlog:safepoint Note that PrintGCApplicationConcurrentTime and PrintGCApplicationStoppedTime are logged on the same tag and aren't separated in the new logging. PrintGCApplicationStoppedTime -Xlog:safepoint Note that PrintGCApplicationConcurrentTime and PrintGCApplicationStoppedTime are logged on the same tag and not separated in the new logging. PrintGCCause Not Applicable GC cause is now always logged. PrintGCDateStamps Not Applicable Date stamps are logged by the framework. PrintGCDetails -Xlog:gc* Not Applicable PrintGCID Not Applicable GC ID is now always logged. PrintGCTaskTimeStamps -Xlog:task*=debug Not Applicable PrintGCTimeStamps Not Applicable Time stamps are logged by the framework. PrintHeapAtGC -Xlog:gc+heap=trace Not Applicable PrintReferenceGC -Xlog:ref*=debug Note that in the old logging, PrintReferenceGC had an effect only if PrintGCDetails was also enabled. PrintStringDeduplicationStatistics -Xlog:stringdedup*=debug Not Applicable PrintTenuringDistribution -Xlog:age*=level Use a level of debug for the most relevant information, or a level of trace for all of what was logged for PrintTenuringDistribution. UseGCLogFileRotation Not Applicable What was logged for PrintTenuringDistribution.
旧版运行时参数迁移
Legacy Runtime Flag Xlog Configuration Comment TraceExceptions -Xlog:exceptions=info Not Applicable TraceClassLoading -Xlog:class+load=level Use level=info for regular information, or level=debug for additional information. In Unified Logging syntax, -verbose:class equals -Xlog:class+load=info,class+unload=info. TraceClassLoadingPreorder -Xlog:class+preorder=debug Not Applicable TraceClassUnloading -Xlog:class+unload=level Use level=info for regular information, or level=trace for additional information. In Unified Logging syntax, -verbose:class equals -Xlog:class+load=info,class+unload=info. VerboseVerification -Xlog:verification=info Not Applicable TraceClassPaths -Xlog:class+path=info Not Applicable TraceClassResolution -Xlog:class+resolve=debug Not Applicable TraceClassInitialization -Xlog:class+init=info Not Applicable TraceLoaderConstraints -Xlog:class+loader+constraints=info Not Applicable TraceClassLoaderData -Xlog:class+loader+data=level Use level=debug for regular information or level=trace for additional information. TraceSafepointCleanupTime -Xlog:safepoint+cleanup=info Not Applicable TraceSafepoint -Xlog:safepoint=debug Not Applicable TraceMonitorInflation -Xlog:monitorinflation=debug Not Applicable TraceBiasedLocking -Xlog:biasedlocking=level Use level=info for regular information, or level=trace for additional information. TraceRedefineClasses -Xlog:redefine+class*=level level=info, =debug, and =trace provide increasing amounts of information.
java9把gc log的选型及输出也给统一到了Xlog中,可以按照官方给出的迁移表进行迁移。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
序本文主要研究一下Java11的HttpClient的基本使用。变化从java9的jdk.incubator.httpclient模块迁移到java.net.h
一、Java9接口定义私有方法从Java9开始,我们可以在Interface接口中添加private的私有方法和私有静态方法。这些私有方法将改善接口内部的代码可
本文实例为大家分享了java中equals和==的区别的具体代码,供大家参考,具体内容如下java9举例代码:Stringstr1="abc";Stringst
一、什么是log4netApachelog4net库是帮助程序员将日志语句输出到各种输出目标的工具,它是从Java中的Log4j迁移过来的一个.Net版的开源日
前言随着标准Java的版本更新,开发者总是可以从升级后的版本中获取想要的功能。本文将给大家详细介绍下mac下面的java9版本安装使用,分享出来供大家参考学习,