码迷,mamicode.com
首页 > Web开发 > 详细

jstat的使用/jam的使用/使用MAT分析内存溢出/

时间:2020-03-04 19:29:14      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:code   dump   出现   数组   i++   col   堆内存   并且   rand   

 

2.通过jmap监控内存使用情况

2.1 监控堆内存   jamp -heap 12840

技术图片

 

 

 

2.2 监控内存中对象的数量及其大小

查看所有对象的数量以及大小包括类型:jmap -histo 14116 | more

技术图片

 

 

查看所有对象的数量以及大小包括类型:jmap -histo:live 14116 | more

技术图片

 

 

2.3 通过jmap导出堆内存使用情况的文件

技术图片

 

 技术图片

 

 2.4  通过jhat查看dump文件并且进行分析,启动一个HTTP端口进行访问,通过该端口可以查看到整个应用程序所使用的的所有对象的情况,提供OQL进行检索

技术图片

 

 

2.5 页面访问

技术图片

 

 

3.使用MAT分析工具   在工具中可以查看到对象数量以及内存使用的情况,当然可以分析出可能出现问题

3.1 解压mat分析工具双击

技术图片

 

 3.2 双击后效果

技术图片

 

 

3.3 点击overview

技术图片

 

4. 模拟内存溢出

4.1 编写代码

public static void main(String[] args) {
        List<Object> objectList=new ArrayList<>();
        for (int i=0;i<10000000;i++){
            String str="";
            for (int j=0;j<1000;j++){
                str+= UUID.randomUUID().toString();
            }
            objectList.add(str);
        }
        System.out.println("添加数据成功~");
    }

 

4.2 设置VM options参数  -Xms8m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError

技术图片

 

4.3 控制台效果

技术图片

 

 

 

4.4 生成一个文件

技术图片

 

 

4.5 使用MAT工具打开刚刚生成的文件查看

技术图片

 

 

4.6 数组内存储了大量的字符串技术图片

 

 

jstat的使用/jam的使用/使用MAT分析内存溢出/

标签:code   dump   出现   数组   i++   col   堆内存   并且   rand   

原文地址:https://www.cnblogs.com/1314Justin/p/12411321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!