zoukankan      html  css  js  c++  java
  • Java 性能分析工具-MAT

    简介
    MAT 是Memory Analyzer的简称,他是一宽功能强大的Java堆内存分析器。多用于查找内存泄露以及查看内存消耗情况。 基于Eclipse开发,是一款免费的Java性能分析功能

    下载安装

    https://www.eclipse.org/mat/downloads.php

    分析dump文件里的GC Roots

    • 代码
    package com.zhu.gc;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Scanner;
    
    /**
     * @describe: GCRootsTest
     * @author: zhuCw
     * @date: 2020/11/24 18:30
     */
    public class GCRootsTest {
        public static void main(String[] args) {
            List<Object> numList = new ArrayList<>();
            Date birth = new Date();
    
            for (int i = 0; i < 100; i++) {
                numList.add(String.valueOf(i));
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
    
            System.out.println("数据添加完毕,请操作:");
            new Scanner(System.in).next();
            numList = null;
            birth = null;
    
            System.out.println("numList、birth已置空,请操作:");
            new Scanner(System.in).next();
    
            System.out.println("结束");
        }
    }
    
    • 使用JVisualVM在输入字符前后分别生成两个dump文件
    • 使用MAT打开两个dump文件(file -> open heapdump)
    • OpenQueryBrower-> java basics -> GC Roots
    • 第一个dump 里main线程里找到了arrylist 和 date为gc root
    • 第二个dump 里main线程里没有找到了arrylist 和 date为gc root(因为置为null了)
  • 相关阅读:
    秒杀多线程第十篇 生产者消费者问题 (续)
    平面最近点距离问题(分治法)
    阿里神马搜索算法实习生 二面
    37. Sudoku Solver
    52. N-Queens II(数个数)
    51. N-Queens
    89. Gray Code(公式题)
    22. Generate Parentheses(回溯)
    回溯总结
    40. Combination Sum II
  • 原文地址:https://www.cnblogs.com/zhucww/p/14037371.html
Copyright © 2011-2022 走看看