Java虚拟机(JVM)-- 堆内存调优

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java虚拟机(JVM)-- 堆内存调优相关的知识,希望对你有一定的参考价值。

1. 堆内存调优

  • 了解完基本的堆的信息之后,我们就可以简单学习下关于堆内存调优的说明了!我们是基于 HotSpot 虚拟机的,JDK1.8;

先看下 JDK 1.7 的

  • Minor GC => 轻GC
  • Major GC => 重GC

JDK 1.8 的


1.1 使用 IDEA 调整堆内存大小测试

代码测试:

    public static void main(String[] args) {
        //返回Java虚拟机试图使用的最大内存量
        long maxMemory = Runtime.getRuntime().maxMemory();
        //返回Java虚拟机中的内存总量
        long totalMemory = Runtime.getRuntime().totalMemory();
        System.out.println("MAX_MEMORY=" + maxMemory + "(字节): " + (maxMemory / (double) 1024 / 1024) + "MB");
        System.out.println("TOTAL_MEMORY=" + totalMemory + "(字节): " + (totalMemory / (double) 1024 / 1024) + "MB");
    }

运行结果:

IDEA中进行JVM调优参数设置,然后启动:

-Xms1024m -Xmx1024m -XX:+PrintGCDetails
VM参数调优:把初始内存,和总内存都调为 1024M,运行,查看结果!

运行结果:

再次证明:元空间并不在虚拟机中,而是使用本地内存。

1.2 测试二

代码:

    public static void main(String[] args) {
        String str = "Tianjiao";
        while (true) {
            str += str + new Random().nextInt(88888888) + new Random().nextInt(999999999);
        }
    }

vm参数:

-Xms8m -Xmx8m -XX:+PrintGCDetails

测试,查看结果:



以上是关于Java虚拟机(JVM)-- 堆内存调优的主要内容,如果未能解决你的问题,请参考以下文章

如何调优JVM - 优化Java虚拟机(大全+实例)

java虚拟机JVM内存分配及回收机制虚拟机调优

java虚拟机JVM内存分配及回收机制虚拟机调优

Java8虚拟机(JVM)内存溢出实战

JVM性能调优

JVM性能调优之生成堆的dump文件