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 中添加配置

9nzEEzZ7QA.png!large

I01Z0S9eIS.png!large

-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError

这里是将 JVM 虚拟机初始化总内存大小为1M,最大内存为8M,然后将堆内存溢出导出为Dump文件。

用 Jprofile 打开
80qYnAueVe.png!large

可以看到内存占用信息
COkl8bemWO.png!large

具体代码问题

MhFtdI91kL.png!large

下载

Plugins 中,搜索下载安装Jprofile

JfJcg7MRGd.png!large

官网下载

官网地址:Jprofile 官网地址

序列号

JProfiler11 序列号

L-J11-Everyone#speedzodiac-327a9wrs5dxvz#463a59

A-J11-Everyone#admin-3v7hg353d6idd5#9b4
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

牛皮

3周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!