JVM的Heap的内存调优,并通过调节Heap的大小实现OOM异常

IDEA上调节JVM的大小

       参数:-Xms:初始的堆内存的容量大小(默认电脑内存的1/64)

                  -Xmx:最大堆内存的大小,(默认电脑内存容量的1/4)

代码查看:初始JVM的内存大小:

package com.thekingqj;

import org.omg.SendingContext.RunTime;

import java.util.Random;

public class JVMOptimize {


    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        long maxMemory = runtime.maxMemory();
        long totalMemory = runtime.totalMemory();
        System.out.println("heap的最大内存为:"+((double)maxMemory/1024/1024)+"MB");
        System.out.println("heap的最大内存为:"+((double)totalMemory/1024/1024)+"MB");
    }
}

 调节JVM内存

-Xms8m -Xmx8m -XX:+PrintGCDetails(调优是最好初始容量和最大容量一样,防止内存的抖动,影响性能)

 

调节成8MB后实现OOM异常

package com.thekingqj;

import org.omg.SendingContext.RunTime;

import java.util.Random;

public class JVMOptimize {


    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        long maxMemory = runtime.maxMemory();
        long totalMemory = runtime.totalMemory();
        System.out.println("heap的最大内存为:"+((double)maxMemory/1024/1024)+"MB");
        System.out.println("heap的最大内存为:"+((double)totalMemory/1024/1024)+"MB");

        String str = "www.atguigu.com" ;
        while(true)
        {
            str += str + new Random().nextInt(88888888) + new Random().nextInt(999999999) ;
        }

    }
}

产生OOM异常时Full GC通过垃圾回收发现,老年代没有空间让新的对象进入,所以报OOM异常

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值