指点成金-最美分享吧

登录

使用HeapAnalyzer分析内存泄漏

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了使用HeapAnalyzer分析内存泄漏相关的知识,希望对你有一定的参考价值。

 

从IBM网站下载ha433包,释放,执行ha433.jar文件

https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

使用教程

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W3b463571efc8_4f02_99af_3cbc0da42ddc/page/IBM%20HeapAnalyzer%20Information

 

javacore.***.txt : 关于cpu的,javacore文件是java进程的快照,主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一行上。也即threaddump文件。

heapdump.***.phd : 关于memory的,heapdump文件是指定时刻java堆栈的快照,是一个二进制镜像文件,它保存了某一时刻JVM堆中对象的使用情况。

core.***.dmp : core文件是java宕掉生成的操作系统级别的进程二进制镜像文件。又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中。

Snap.***.trc : snap文件是快速追踪的保留在跟踪缓冲区里的追踪点数据,用来分析本地内存的OOM异常。

==============================华丽的分割线==============================
如何查看javacore文件、heapdump文件?
原文链接:http://blog.chinaunix.net/uid-1844931-id-3229278.html

一。查看javacore文件
     1.下载ThreadDumpAnalyser,graphviz,svgviewer
     ThreadDumpAnalyser: 
     https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c
     2.运行runall.bat javacore.txt,会产生三个文件dumps.xml,locktree1.svg,sidebyside.html

二。查看heapdump文件
     1.从IBM网站下载ha433包,释放,执行ha433.jar文件
     IBM HeapAnalyzer:
     https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091
     2.在ha433窗口打开heapdump.phd,从中会显示分析结果

==============================华丽的分割线==============================
如何生成javacore和heapdump文件?
原文链接:http://blog.csdn.net/happyqwz/article/details/8255762

进入wsadmin
  D:IBMWebSphereAppServerin>wsadmin -user wasadmin -password password
1、生成javacore文件
设置jvm环境变量:
  wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
生成javacore文件:
  wsadmin>$AdminControl invoke $jvm dumpThreads

/2、生成heapdump文件
找到JVM对象名字:
  wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
生成heapdump文件:
  wsadmin>$AdminControl invoke $objectName generateHeapDump

































以上是关于使用HeapAnalyzer分析内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章