美文网首页
JAVA虚拟机GC参数变化

JAVA虚拟机GC参数变化

作者: 一万年不是尽头 | 来源:发表于2020-10-19 17:32 被阅读0次

    前置知识

    JVM日志

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

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

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

    • Tag

    标签可以理解为虚拟机的某个功能模块.其中垃圾收集器的标签名称为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相关参数变化

    • GC基本信息

    JDK9之前:-XX:+PrintGC

    JDK9及以后:-Xlog:gc

    C:\Java\jdk\bin>java -Xlog:gc Test
    [0.019s][info][gc] Using G1
    helloWorld
    
    • GC详细信息

    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
    

    相关文章

      网友评论

          本文标题:JAVA虚拟机GC参数变化

          本文链接:https://www.haomeiwen.com/subject/hqclmktx.html