美文网首页
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参数变化

    前置知识 JVM日志 在JDK9以前,HotSpot没有统一的日志处理框架,直到JDK9,HotSpot所有功能的...

  • 25-GC日志分析

    一、GC日志参数列表 通过阅读GC日志,可以了解Java虚拟机内存分配与回收策略 -XX:+PrintGC :输...

  • 深入理解java虚拟机——常用虚拟机参数

    1 跟踪调试参数 1.1 跟踪垃圾回收 -XX:+PrintGC:使用这个参数启动Java虚拟机后,只要遇到GC,...

  • java.jvm.命令

    -verbose:gc Java -verbose:gc 命令表示输出虚拟机中GC的详细情况. -XX:+Prin...

  • jvm参数

    常用的JVM参数 跟踪JAVA虚拟机的垃圾回收 GC日志:jvm垃圾回收,记录jvm的运行状态,oom内存溢出的报...

  • GC

    查看GC日志时需要用到的虚拟机参数: -XX:+PrintGC 输出GC日志-XX:+PrintGCDetail...

  • 深入JVM-常用Java虚拟机参数

    一、跟踪调试参数 1.1 跟踪垃圾回收-读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时...

  • JAVA_查看垃圾回收日志

    Java GC类型: Java中的GC有哪几种类型? UseSerialGC虚拟机运行在Client模式的默认值,...

  • 深入JVM:(六)常用JVM配置参数

    一、Trace跟踪参数 -verbose:gc:输出虚拟机中GC的详细情况-XX:+PrintGC:与 -verb...

  • jvm<二> 内存管理

    java虚拟机回收gc roots 查找机制gc roots对象可达, 不会被释放1.虚拟机栈本地变量表引用的对象...

网友评论

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

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