zoukankan      html  css  js  c++  java
  • jamp的使用与使用MAT分析内存溢出

     

    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 数组内存储了大量的字符串

  • 相关阅读:
    zoj-3433-Gu Jian Qi Tan
    优先队列详解(转载)
    HDU-3661-Assignments
    hdu-1052-Tian Ji -- The Horse Racing(经典)
    POJ-1456-Supermarket
    UVA-11292Dragon of Loowater
    UVA-11729-Commando War
    循环日程表 问题(递归分治)
    八数码问题
    POJ-3273 Monthly Expense (最大值最小化问题)
  • 原文地址:https://www.cnblogs.com/szhhhh/p/12411321.html
Copyright © 2011-2022 走看看