java有内存泄漏分析工具吗?java内存泄漏最直接表现是什么?

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" 按钮。

java有内存泄漏分析工具吗?java内存泄漏最直接表现是什么?.png

主界面

第一次打开因为需要分析dump文件,所以需要等待一段时间进行分析,分析完成之后dump文件目录下面的文件信息如下:

1.png

上图中 heap-27311.bin 文件是原始的Heap Dump文件,zip文件是生成的html形式的报告文件。

打开之后,主界面如下所示:

2.png

java内存泄漏最直接表现是什么?

程序抛内存控制的Exception。java是自动管理内存的,通常情况下程序运行到稳定状态,内存大小也达到一个 基本稳定的值,但是内存泄露导致Gc不能回收泄露的垃圾,内存不断变大.最终超出内存界限,抛出OutOfMemoryExpection。

一次内存泄漏的危害可以忽略不计,但是多次内存泄漏开发人员就要及时去解决问题了,不然肯定会影响程序运行!最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。

推荐阅读:

ajax如何解决跨域问题?前端ajax跨域解决方案

java开发网站用什么框架?为什么java开发要用框架?

json格式如何存入mysql?存入方法介绍