Intellij IDEA 集成 JProfiler 性能分析神器
什么是Jprofile
JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。
其特点:
- 使用方便
- 界面操作友好
- 对被分析的应用影响小
- CPU,Thread,Memory分析功能尤其强大
- 支持对jdbc,noSql, jsp, servlet, socket等进行分析
- 支持多种模式(离线,在线)的分析
这里主要是作为分析 Dump 内存文件,例如以下代码
//Dump;
public class Test5 {
Byte[] array = new Byte[1024*1024];//1MB
public static void main(String[] args) {
ArrayList<Test5> list = new ArrayList<>();
int count = 0;
//Throwable
//Exception
//Error
try {
while (true) {
list.add(new Test5());
count = count +1;
}
}catch (Error e){
System.out.println(count);
e.printStackTrace();
}
}
}
一直循环在 list 集合里添加新对象,新对象都会占用1M的内存,会造成堆内存溢出:java.lang.OutOfMemoryError
,由于堆内存溢出是Error
,不是Exception
,需要用Error来捕获,在实际开发中有时很难检查出错误,需要使用Jprofile来分析。
- 先配置 Java 虚拟机,在 VM Options 中添加配置
-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
这里是将 JVM 虚拟机初始化总内存大小为1M,最大内存为8M,然后将堆内存溢出导出为Dump文件。
用 Jprofile 打开
可以看到内存占用信息
具体代码问题
下载
Plugins 中,搜索下载安装Jprofile
官网下载
官网地址:Jprofile 官网地址
序列号
JProfiler11 序列号
L-J11-Everyone#speedzodiac-327a9wrs5dxvz#463a59
A-J11-Everyone#admin-3v7hg353d6idd5#9b4
本作品采用《CC 协议》,转载必须注明作者和本文链接
牛皮