IDEA中设置JProfiler
JProfiler是什么
JProfiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能。
功能
-
本地会话实时分析模式
用户一旦定义好了其应用程序启动方式,JProfiler即能对之进行设置,用户即刻便能从设置好的JVM中看到实时数据。用户若不想进行会话配置,其可以从多个IDE插件中选择其最喜欢的那个对应用程序进行配置。 -
远程会话实时分析模式
通过修改Java开始命令行方式的VM参数,用户可使任意Java应用程序监听来自的JProfiler GUI的连接。该设置程序不但可以在本地计算机上运行,还可以在网络中作为某个设置程序的附加程序使用。此外,JProfiler还提供了相当多的集成向导,可用于主流的可以帮助用户安装和设置其应用程序的应用程序服务器。 -
离线分析模式
用户无需通过JProfiler GUI连接应用程序即可对之进行设置。在离线设置模式下,用户可以使用功能强大的JProfiler触发系统或者JProfiler’ API对设置代理进行控制,然后将快照保存入磁盘。稍后用户便可使用命令行导出工具或者蚂蚁任务导出工具,在JProfiler GUI或编程方式的设置导出视图中打开这些快照。 -
快照比较
在JProfiler中,用户可以将当前的所有设置数据保存为一个快照存入磁盘中。JProfiler提供了丰富的比较功能以对比两个或者多个快照之间的不同。用户可从编程的命令行比较工具和ant task比较工具中选择其一创建对比报告。 -
查看HPROF快照
JProfiler能打开用JVM工具(比如jconsole、 jmap或通过-XX:+HeapDumpOnOutOfMemoryError JVM参数触发)创建的HPROF快照文件
安装
IEAR下载插件JPrifiler
安装完插件记得重启IDEA.出现下图标准表示安装成功
congqi官网下载JProfiler客户端并安装。 官网下载地址:https://www.ej-technologies.com/download/jprofiler/files
使用
生成快照
public class vmtest {
public static int i=1;
public static void main(String[] args) {
final long max= Runtime.getRuntime().maxMemory();//jvm的视图使用的最大内存
final long total = Runtime.getRuntime().totalMemory();//jvm初始化内存
final int cpu = Runtime.getRuntime().availableProcessors();//cpu核数
/*-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -Xss2m
* 表示配置jvm初始化内存为10M,最大内存为10M,打印GC详细文件,生成错误文件
* */
System.out.println("虚拟机获得最大内存"+(max/1024/1024)+"m");
System.out.println("初始最大内存"+(total/1024/1024)+"m");
System.out.println("本机核数:"+cpu);
String s = new String();
while(true){
final byte[] bytes = new byte[1024 * 1024*1024];
}
}
}
配置VM
运行程序
我们预期效果达到,堆内存超出。
打开项目目录找到生成的快照,并用JProfiler工具打开
进入JProfiler
查看堆中的实例
查看在哪里报错
本地运行
进入JProfiler
可以查程序运行时的实时数据
生成快照
进入JProfiler
可以查程序运行时的实时数据
生成快照