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

安装JProfiler

链接: https://pan.baidu.com/s/1Aes29xDioujhyXcXbE96Fw 提取码: r2rb 复制这段内容后打开百度网盘手机App,操作更方便哦

// 官网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
12版本 网盘注册码:
L-J12-STALKER#5846458-y8bdm6q8gtr7b#228a
L-J12-STALKER#8338547-qywh5933xu2r3#a4a4

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();
}
}
}
idea最新版本需要打开VM设置

vm参数 : -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
点击运行后会生成java_pidxxxxx.hprof文件,找到该文件

使用JProfiler打开该生成的文件

使用 Jprofiler 工具分析查看
双击这个文件默认使用 Jprofiler 进行 Open大的对象!
查看错误方式:



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内存文件 生成调参文件