JVM之常用基础参数详解

标签: JVM  JAVA  基础参数

JVM之常用基础参数详解


目录

  1. 常用基础参数内存Xms,Xmx讲解
  2. 常用基础参数栈内存Xss讲解
  3. 常用基础参数元空间MetaspaceSize讲解
  4. 常用基础参数PrintGCDetails回收前后对比讲解
  5. 常用基础参数SurvivorRatio讲解
  6. 常用基础参数NewRatio讲解
  7. 常用基础参数MaxTenuringThreshold讲解

1. 常用基础参数内存Xms,Xmx讲解


  1. 概述
    在这里插入图片描述
  2. 代码查看
public class HelloGC {
    public static void main(String[] args) throws InterruptedException {
        long totalMemory = Runtime.getRuntime().totalMemory();
        long maxMemory = Runtime.getRuntime().maxMemory();
        System.out.println("TOTAL_MEMORY(-Xms)="+totalMemory+"(字节)"+(totalMemory/(double)1024/1024)+"(MB)");
        System.out.println("MAX_MEMORY(-Xms)="+maxMemory+"(字节)"+(maxMemory/(double)1024/1024)+"(MB)");
    }
}
  1. 执行结果
    在这里插入图片描述

2. 常用基础参数栈内存Xss讲解


  1. 概述在这里插入图片描述
  2. 默认为512k~1024k,但使用jinfo查询ThreadStackSize大小为什么为0?
    在这里插入图片描述
    根据官方文档所说:跟平台有关系,如下
    在这里插入图片描述

3. 常用基础参数元空间MetaspaceSize讲解


  1. 概述
    在这里插入图片描述

  2. 可以看到,虽然机器16G,但元空间只有21M,所以需要进行调参
    在这里插入图片描述

  3. 典型设置案例
    在这里插入图片描述


4. 常用基础参数PrintGCDetails回收前后对比讲解


  1. 概述
    在这里插入图片描述

  2. 设置输出详细GC收集日志信息
    在这里插入图片描述

  3. 正常输出结果
    在这里插入图片描述
    解析:
    在这里插入图片描述


  1. 报OOM时的输出结果
    在这里插入图片描述
    解析:
    在这里插入图片描述

5. 常用基础参数SurvivorRatio讲解

  1. 概述
    在这里插入图片描述
  2. 默认8:1:1,可以设置,比如设置为4,就是4:1:1
    在这里插入图片描述
    在这里插入图片描述

6. 常用基础参数NewRatio讲解


  1. 概述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7. 常用基础参数MaxTenuringThreshold讲解

  1. 概述
    在这里插入图片描述
  2. 垃圾最大年龄默认为15,可通过 jinfo -flag MaxTenuringThreshold 端口号查询
    在这里插入图片描述
  3. 垃圾最大年龄也是15,设置超过15会报错
    在这里插入图片描述