JAVA虚拟机GC参数变化

2020-10-19  本文已影响0人  一万年不是尽头

前置知识

JVM日志

在JDK9以前,HotSpot没有统一的日志处理框架,直到JDK9,HotSpot所有功能的日志都可以由-Xlog参数控制

使用说明:-Xlog[:[selector][:[output][:[decorators][:out-options]]]]

其中最关键的参数是选择器(selector),它由标签Tag和日志级别Level组成.

标签可以理解为虚拟机的某个功能模块.其中垃圾收集器的标签名称为gc

所有支持的标签如下

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,workgang

日志级别从低到高,共有Trace,Debug,Info,Warning,Error,Off六中级别,支持附加在日志行上的消息如下表显示

tag 说明
time 当前日期和时间
uptime 虚拟机启动到现在经过的时间,以秒为单位
timemillis 当前时间的毫秒数,相当于System.currentTimeMillis()的输出
uptimemillis 虚拟机启动到现在经过的毫秒数
timenanos 当前时间的纳秒数,相当于System.nanoTime()的输出
uptimenanos 虚拟机启动到现在经过的纳秒数
pid 进程id
tid 线程id
level 日志级别
tags 日志输出的标签集

如果不刻意指定输出格式,其默认格式是[uptime][level][tags]

虚拟机GC相关参数变化

JDK9之前:-XX:+PrintGC

JDK9及以后:-Xlog:gc

C:\Java\jdk\bin>java -Xlog:gc Test
[0.019s][info][gc] Using G1
helloWorld

JDK9之前:-XX:+PrintGCDetail

JDK9及以后:-Xlog:gc*

C:\Java\jdk\bin>java -Xlog:gc* Test
[0.016s][info][gc,heap] Heap region size: 1M
[0.022s][info][gc     ] Using G1
[0.023s][info][gc,heap,coops] Heap address: 0x0000000080a00000, size: 2038 MB, Compressed Oops mode: 32-bit
helloWorld
[0.123s][info][gc,heap,exit ] Heap
[0.123s][info][gc,heap,exit ]  garbage-first heap   total 131072K, used 1024K [0x0000000080a00000, 0x0000000100000000)
[0.125s][info][gc,heap,exit ]   region size 1024K, 2 young (2048K), 0 survivors (0K)
[0.127s][info][gc,heap,exit ]  Metaspace       used 3635K, capacity 4486K, committed 4864K, reserved 1056768K
[0.128s][info][gc,heap,exit ]   class space    used 325K, capacity 386K, committed 512K, reserved 1048576K
上一篇下一篇

猜你喜欢

热点阅读