当前位置 : 主页 > 编程语言 > java >

Java 代码OOM内存溢出检查

来源:互联网 收集:自由互联 发布时间:2022-07-05
编写OOM程序 package com . example . demo ; import org . springframework . web . bind . annotation . GetMapping ; import org . springframework . web . bind . annotation . RestController ; import java . util . ArrayList ; @RestController

编写OOM程序

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;

@RestController
public class TestController {
@GetMapping("/hello")
public void c_() throws InterruptedException {
System.out.println("你好");
Integer K = 1024000000;

ArrayList<byte[]> list = new ArrayList<>();
int i = 0;
while (true) {
Thread.sleep(50);
list.add(new byte[5 * 1024 * 1024]);
System.out.println("分配次数" + (++i));
}
}


}

启动类 , 名字瞎起的,不要在意细节

package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Demo1111Application {

public static void main(String[] args) {
SpringApplication.run(Demo1111Application.class, args);
}


}

启动SpringBoot项目

Java 代码OOM内存溢出检查_spring

使用Java VisualVM工具监视监控JVM情况

Java 代码OOM内存溢出检查_spring_02

Java 代码OOM内存溢出检查_java_03

Java 代码OOM内存溢出检查_java_04

开始访问接口,等待OOM异常

​​http://localhost:8080//hello​​

Java 代码OOM内存溢出检查_java_05

打开dump文件

Java 代码OOM内存溢出检查_java_06

Java 代码OOM内存溢出检查_java代码_07

Java 代码OOM内存溢出检查_spring_08

OOM情况

Java 代码OOM内存溢出检查_java代码_09

这里还显示在Java代码的哪行

Java 代码OOM内存溢出检查_java代码_10


上一篇:win10本地 Java死锁检查,使用jstack工具
下一篇:没有了
网友评论