本文不做说明,记录工作上内存泄漏相关定位工具
生成堆栈文件
通过jdk自带工具生成,线上使用的时候执行的时候提示找不到pid对应的文件,加上-F参数可以强制关联上
jmap -F -dump:format=b,file=d:\dump\heap.hprof <pid>
下面这个没有使用过,目测可以
jcmd <pid> GC.heap_dump d:\dump\heap.hprof
部署tomcat的时候最好要加下面参数,在出现内存溢出的时候方便排查
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=d:\test.hprof
查看堆栈信息
个人感觉jprofiler好一点,可以将调用关系通过图形展示出来,看了对于异常的dump文件jvisualvm装载不会提示错误,有点坑。。。
jdk自带工具
jvisualvm.exe
jhat -J-mx768m -port <端口号:默认为7000> heap.dmp
第三方工具
jprofiler