java_JVM

Java8以后的JVM

 

1、JVM调优和参数配置,查看JVM系统默认值;

  1.1、JVM参数类型:

    标配参数

      -version

      -help

      -showversion

      

    X参数(了解)

      -Xint     解释执行

      -Xcomp   第一次使用就编译成本地代码

      -Xmixed  混合模式(先编译再执行)

      

    XX参数

      boolean类型

        公式:-XX:+/- 属性值

          +:开启

          -:关闭

属性名:UseSerialGC(是否使用串行垃圾回收器)

属性名:PrintGCDetails(是否打印GC收集细节)

以PrintGCDetails属性为例(是否打印GC收集细节):

更改当前运行的JVM环境如下:

      KV设值类型

        公式:-XX:属性名key=属性值value

      jinfo举例,如何查看当前运行程序的配置

        公式:jinfo -flag 属性名 进程编号

      题外话(坑题)

        经典参数:

          -Xms 等价于 -XX:InitialHeapSize(初始化堆内存)

          -Xmx 等价于 -XX:MaxHeapSize(最大堆内存)

          java -XX:+PrintFlagsInitial -version(主要查看JVM初始默认值)

          java -XX:+PrintFlagsFinal -version(主要查看JVM修改以后的)

          java -XX:+PrintCommandLineFlags -version(查看默认的垃圾回收器)

 

2、JVM常用参数

-Xms 等价于 -XX:InitialHeapSize 初始内存(堆)大小,默认为物理内存的 1/64;

-Xmx 等价于 -XX:MaxHeapSize 最大分配内存(堆)大小,默认为物理内存的 1/4;

-Xss 等价于 -XX:ThreadStackSize 设置单个线程栈空间的大小,默认为 512K-1024K(若查出来的ThreadStackSize = 0,则代表用的是系统出场默认值);

-Xmn 堆中新生代初始及最大大小,如果需要进一步细化,初始化大小用-XX:NewSize,最大大小用-XX:MaxNewSize;

-XX:MetaspaceSize:设置元空间大小(java7称为老年代,java8元空间取代老年代,元空间的本质和老年代类似,都是对JVM规范中方法区的实现,与老年代最大的区别在于元空间不在虚拟机中,

          而是使用的本地内存,因此默认情况下,元空间的大小仅受本地内存限制);

-XX:+PrintGCDetails:是否开启打印GC回收详细日志信息;

    开启后演示:

GC收集日志信息详解:

FullGC收集日志信息详解:

-XX:SurvivorRatio

  设置新生代中eden和s0、s1空间的比例;

  默认为 XX:SurvivorRatio=8,Eden:s0:s1 = 8:1:1;

  SurvivorRatio的值就是设置eden区比例占多少,s0、s1相同;

  

-XX:NewRatio

  配置新生代与老年代在堆结构中的占比;

  默认:-XX:NewRatio=2,新生代占比1,老年代占比2,新生代占整个堆的 1/3;

  若配置 -XX:NewRatio=4,则新生代占比1,老年代占比4,新生代占整个堆的 1/5;

-XX:MaxTenuringThreshold

  设置垃圾最大年龄(JAVA8后 值在 0-15之间)

-XX:MaxDirectMemorySize

  JVM堆内存大小可以通过-Xmx来设置,同样的direct ByteBuffer可以通过-XX:MaxDirectMemorySize来设置,

  此参数的含义是当Direct ByteBuffer分配的堆外内存到达指定大小后,即触发Full GC。

  注意该值是有上限的,默认是64M,最大为sun.misc.VM.maxDirectMemory(),在程序中中可以获得-XX:MaxDirectMemorySize的设置的值。

 

 

3、JVM参数调优

 

内:使用VM options设置JVM参数,再进行打包;

 

外:

第一步:启动jar(war)包;

第二步:设置JVM参数;

posted @ 2021-03-23 10:37  DHaiLin  阅读(56)  评论(0编辑  收藏  举报