java内存溢出定位

目录

1、导出dump文件

2、MAT分析

2.1 导入dump文件

2.2 分析

 3、VisualVM

3.1 打开VisualVM

3.2 导入dump文件 

3.3 分析

4、测试代码


1、导出dump文件

#查看pid
jps

#导出dump文件
jmap -dump:format=b,file=heap.hprof pid
#示例
jmap -dump:format=b,file=heap.hprof 17406

2、MAT分析

2.1 导入dump文件

官网mat自行下载:Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

java内存溢出定位_第1张图片

2.2 分析

java内存溢出定位_第2张图片

java内存溢出定位_第3张图片

 3、VisualVM

3.1 打开VisualVM

#机器已经安装jdk的情况下,终端执行以下命令
jvisualvm

3.2 导入dump文件 

3.3 分析

java内存溢出定位_第4张图片 

4、测试代码

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class TestController {
    @RequestMapping("/test")
    public void test( ) throws InterruptedException {
        String str ="testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest";
        int count = 0;
        while (true){
            str += str;
            System.out.println(count);
            count++;
            Thread.sleep(1000);
        }
    }

}

你可能感兴趣的:(java,java)