• JVM调优-JProfiler


    Dump内存快照

    在运行java程序的时候,有时候想测试运行时占用内存情况,这时候就需要使用测试工具查看了。在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在idea中也有这么一个插件,就是JProfiler,一款性能瓶颈分析工具!

    作用

    • 分析Dump文件,快速定位内存泄漏;
    • 获得堆中对象的统计数据
    • 获得对象相互引用的关系
    • 采用树形展现对象间相互引用的情况

    在这里插入图片描述

    安装JProfiler

    1. IDEA插件安装

    在这里插入图片描述

    1. 安装JProfiler监控软件

    在这里插入图片描述

    1. 下载完双击运行,选择自定义目录安装,点击Next。
    2. 我的 安装路径为:E:\JProfiler\jprofiler12
    • 注意:安装路径,建议选择一个文件名中没有中文,没有空格的路径 ,否则识别不了。然后一直点Next。

    在这里插入图片描述

    // 官网9版本 注册码仅供大家参考
    L-Larry_Lau@163.com#23874-hrwpdp1sh1wrn#0620
    L-Larry_Lau@163.com#36573-fdkscp15axjj6#25257
    L-Larry_Lau@163.com#5481-ucjn4a16rvd98#6038
    L-Larry_Lau@163.com#99016-hli5ay1ylizjj#27215
    L-Larry_Lau@163.com#40775-3wle0g1uin5c1#0674
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    12版本 网盘注册码:
    L-J12-STALKER#5846458-y8bdm6q8gtr7b#228a
    L-J12-STALKER#8338547-qywh5933xu2r3#a4a4
    
    • 1
    • 2
    • 3
    1. 配置IDEA运行环境
    • Settings–Tools–JProflier–JProflier executable选择JProfile安装可执行文件。(如果系统只装了一个版本, 启动IDEA时会默认选择)保存。

    在这里插入图片描述

    • 代码测试:
    import java.util.ArrayList;
    
    public class Demo03 {
        byte[] byteArray = new byte[1*1024*1024]; // 1M = 1024K
    
        public static void main(String[] args) {
            ArrayList<Demo03> list = new ArrayList<>();
            int count = 0;
            try {
                while (true) {
                    list.add(new Demo03());  // 问题所在
                    count = count + 1;
                }
            } catch (Error e) {
                System.out.println("count:" + count);
                e.printStackTrace();
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    idea最新版本需要打开VM设置

    在这里插入图片描述

    • vm参数 : -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError

    • 点击运行后会生成java_pidxxxxx.hprof文件,找到该文件

    在这里插入图片描述

    使用JProfiler打开该生成的文件

    在这里插入图片描述

    使用 Jprofiler 工具分析查看

    双击这个文件默认使用 Jprofiler 进行 Open大的对象!

    查看错误方式:

    • 查看当前对象集的 最大对象

    在这里插入图片描述

    • 进入线程转储 查看当前线程(本方法钟只有一个main线程,故只需要查看main线程即可)

    在这里插入图片描述

    在这里插入图片描述

    总结:

    JPofiler工具分析OOM
    MAT, Jprofiler作用

    ●分析Dump内存文件,快速定位内存泄露;
    ●获得堆中的数据
    ●获得大的对象~

    MAT是eclipse集成使用 在这里不学

    Jprofile使用

    1.在idea中下载jprofile插件
    2.联网下载jprofile客户端
    3.在IDEA设置中指定jprofile的客户端exe文件地址
    4.在idea中VM参数中写参数 -Xms1m -Xmx8m -XX: +HeapDumpOnOutOfMemoryError
    5.运行程序后在jprofile客户端中打开找到错误 告诉哪个位置报错

    命令参数详解
    // -Xms设置初始化内存分配大小/164
    // -Xmx设置最大分配内存,默以1/4
    // -XX: +PrintGCDetails // 打印GC垃圾回收信息
    // -XX: +HeapDumpOnOutOfMemoryError //当堆出现oom(堆内存溢出异常)分析 DUMP内存文件 生成调参文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    学习笔记-java代码审计-反序列化
    安装Microsoft visual c++ 2022 X86 minimum runtime报错
    【无标题】
    【软件测试】开发/测试模型
    15.PyQt5中的事件系统之事件(QEvent)简介
    NKOJP5682果老师炸桥
    Jmeter如何进行接口测试-实操
    【Pytorch深度学习开发实践学习】【VGG】经典算法复现-Pytorch实现VGG主干网络(1)model.py
    Remix 开发小技巧(五)
    MathWorks Matlab R2023b ARM Mac报错 License Manager Error -8
  • 原文地址:https://blog.csdn.net/Ghoul___/article/details/125448310