java内存泄漏是java开发中经常遇见的异常,内存泄漏能够导致其他组件可用的内存变少,一旦内存不足以为某些对象分配所需要的空间,将会导致程序崩溃,造成体验差。那java有内存泄漏分析工具吗?下面来我们就来给大家讲解一下。
java有内存泄漏分析工具——Eclipse Memory Analyzer(简称MAT),是一个功能丰富且操作简单的JVM Heap Dump分析工具,可以用来辅助发现内存泄漏减少内存占用。
使用 Memory Analyzer 来分析生产环境的 Java 堆转储文件,可以从数以百万计的对象中快速计算出对象的 Retained Size,查看是谁在阻止垃圾回收,并自动生成一个 Leak Suspect(内存泄露可疑点)报表。
下载与安装
Eclipse Memory Analyzer(MAT)支持两种安装方式,一是Eclipse插件的方式,另外一个就是独立运行的方式,建议使用独立运行的方式。
在 http://www.eclipse.org/mat/downloads.php 下载安装MAT,启动之后打开 File - Open Heap Dump... 菜单,然后选择生成的Heap DUmp文件,选择 "Leak Suspects Report",然后点击 "Finish" 按钮。
主界面
第一次打开因为需要分析dump文件,所以需要等待一段时间进行分析,分析完成之后dump文件目录下面的文件信息如下:
上图中 heap-27311.bin 文件是原始的Heap Dump文件,zip文件是生成的html形式的报告文件。
打开之后,主界面如下所示:
java内存泄漏最直接表现是什么?
程序抛内存控制的Exception。java是自动管理内存的,通常情况下程序运行到稳定状态,内存大小也达到一个 基本稳定的值,但是内存泄露导致Gc不能回收泄露的垃圾,内存不断变大.最终超出内存界限,抛出OutOfMemoryExpection。
一次内存泄漏的危害可以忽略不计,但是多次内存泄漏开发人员就要及时去解决问题了,不然肯定会影响程序运行!最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。
推荐阅读: