温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

内存泄漏分析利器MAT

发布时间:2020-07-26 17:55:02 来源:网络 阅读:455 作者:爱与梦想 栏目:软件技术

MAT:Memory Analyzer Tool

           是一个快速并且功能强大的 java heap 分析器,能分析查找内存泄漏等问题

           获取内存快照存储的dump文件,就可以利用它来分析

           下载地址:http://www.eclipse.org/mat/downloads.php


基本概念:

        Shallow Size:对象自身占用的内存大小

        Retained Size:当前对象大小+它直接/间接引用到的对象大小,两者之和


通过MAT分析由于代码原因造成的内存泄漏:

        -----获取内存快照(.hprof文件):

            方法1:在tomcat/bin/catalina.sh中设置,以便jvm崩溃的时候会打印出堆信息:

                          -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=path_address

            方法2:使用命令jps、jmap获取内存快照

         jps -m -l   列出JVM中运行的进程状态信息(获取某个进程的pid, 供后续命令使用)                     

                         jmap -dump:format=b,file=xxx.hprof pid    把进程内存使用情况dump到文件中

            方法3:利用jvisualVM

        -----使用MAT工具分析:

                新建一个文件夹(因为分析的时候会产生很多临时文件),把要分析的.hprof文件放进来

                打开MAT,选择要分析的.hprof文件

                分析的时候,根据MAT给出的提示一步步进行即可

内存泄漏分析利器MAT

内存泄漏分析利器MAT

内存泄漏分析利器MAT

内存泄漏分析利器MAT

内存泄漏分析利器MAT

注意事项:

  1. 因为内存快照是某一瞬间的,所以可能需要多捕获几次,多次分析,才能发现问题

  2. 分析以后会生成一个压缩包,如果看不懂的话,可以直接给开发人员进行分析

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI