memory dump and Memory Leak

Memory Leak 定义

内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费 ,导致程序运行速度减慢甚至系统崩溃等严重后果。

Memory Leak 特性

内存泄漏缺陷具有隐蔽性、积累性 的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺陷 。此外,内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的情况下可能使系统崩溃。

静态变量

静态存储变量是指在程序运行期间分配了固定存储空间的变量而动态存储变量是指在程序运行期间根据实际需要进行动态地分配存储空间的变量。

由于动态存储变量可以根据函数调用的需要,动态地分配和释放存储空间,大大提高了内存的使用效率,使得动态存储变量在程序中被广泛使用。

Memory dump

内存转储文件

内存转储文件(虚拟内存):内存转储是用于系统崩溃时,将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析用途。而它所保存生成的文件就叫做内存转储文件。
比如可以理解成:把内存某一时刻的内容,dump(转存,导出,保存)成文件.

因为程序在计算机中运行时,在内存、CPU、I/O等设备上的数据都是动态的(或者说是易失的),也就是说数据使用完或者发生异常就会丢掉。如果我想得到某些时刻的数据(有可能是调试程序Bug或者收集某些信息),就要把他转储(dump)为静态(如文件)的形式。否则,这些数据你永远都拿不到。

编译运行以后,到任务管理器保存内存转储文件

产生DMP 文件
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse Memory Analyzer(简称MAT)是一款基于Eclipse的内存分析工具,主要用于分析Java应用程序的内存使用情况。下面是Eclipse Memory Analyzer的中文教程。 1. 安装与配置:首先,我们需要下载并安装Eclipse Memory Analyzer。可以从官方网站或Eclipse Marketplace中获取安装包。安装完成后,进入Eclipse,选择“Help” -> ”Eclipse Marketplace”,搜索并安装Memory Analyzer插件。安装完成后,重启Eclipse。 2. 导入和分析Dump文件:在Eclipse中,选择“File” -> “Import”,然后选择“Memory Analysis”,点击“Next”。在这个页面,你可以选择要导入和分析的Heap Dump文件,Heap Dump是一个保存Java堆内存快照的文件,可以通过 JVM 参数 -XX:+HeapDumpOnOutOfMemoryError 或者 JMAP 工具生成。选择好文件后,点击“Finish”按钮。MAT将会对文件进行分析并展示相关信息。 3. 内存泄漏分析:在MAT中,你可以使用“Leak Suspects”选项卡来查找可能的内存泄漏问题。点击“Leak Suspects”选项卡后,MAT会自动进行分析,并列出可能的内存泄漏问题。你可以点击其中一个泄漏对象以查看详细信息,并根据分析结果进行修复。 4. 内存使用情况分析:通过“Histogram”选项卡,你可以查看Java应用程序各个类的内存使用情况。MAT将会显示每个类的实例数量、占用内存量等信息,方便你进行分析。你可以根据需要进行排序、过滤和搜索,以更好地了解内存使用情况。 5. 内存报告生成:MAT提供了生成内存报告的功能,方便你将分析结果保存和分享。在Eclipse中,点击“File” -> “Export”,选择“Heap Dump”,然后点击“Next”。在这个页面,你可以选择要保存的文件路径和格式,点击“Finish”按钮即可生成报告。 这是关于Eclipse Memory Analyzer教程的简要介绍。通过上述步骤,你可以更好地使用MAT进行Java内存分析,发现和解决内存相关的问题。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值