`
dannyhz
  • 浏览: 392916 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

内存泄漏分析 dump hprof

 
阅读更多

http://blog.csdn.net/jackesy/article/details/47039865

1.5  例子
举例一个典型的分析内存泄漏的过程:
1.  使用 Heap查看当前堆大小为 23.00M
2.  添加一个页后堆大小变为 23.40M
3.  将添加的一个页删除,堆大小为 23.40M
4.  多次操作,结果仍相似,说明添加/删除页存在内存泄漏 (也应注意排除其它因素的影响)
5.  Dump 出操作前后的 hprof 文件 (1.hprof,2.hprof),用 mat打开,并得到 histgram结果
6.  使用 HomePage字段过滤 histgram结果,并列出该类的对象实例列表,看到两个表中的对象集合大小不同,操作后比操作前多出一个 HomePage,说明确实存在泄漏
7.  将两个列表进行对比,找出多出的一个对象,用查找 GC Root的方法找出是谁串起了这条引用线路,定位结束
PS :
·        很多时候堆增大是 Bitmap引起的,Bitmap在 Histogram中的类型是 byte [],对比两个 Histogram中的 byte[]对象就可以找出哪些 Bitmap有差异
·        多使用排序功能,对找出差异很有用
2 内存泄漏的原因分析
总结出来只有一条: 存在无效的引用!
良好的模块设计以及合理使用设计模式有助于解决此问题。
分享到:
评论

相关推荐

    dump文件分析工具,.hprof memoryanalyzer_v1.5.0.rar

    而`.hprof`文件格式是Java虚拟机(JVM)生成的默认内存转储格式,通常用于进行内存分析。 `Memory Analyzer Tool (MAT)`是IBM提供的一款强大的开源工具,专门用来分析`.hprof`文件,帮助开发者找出内存泄漏、过大...

    jmap -dump:format=b,file=heapdump.hprof Pid堆栈文件分析工具

    生成堆转储文件后,我们通常会使用专门的内存分析工具来解析和分析这些数据,以发现可能存在的内存泄漏、过大对象或不合理的对象引用等问题。MAT(Memory Analyzer Tool)就是这样的一个强大的分析工具,它是Eclipse...

    idea git提交内存溢出后dump文件

    分析`heapDump.hprof`文件可以使用各种工具,例如Oracle的JVisualVM、Eclipse Memory Analyzer Tool (MAT)或IntelliJ IDEA自身的内存分析插件。这些工具可以帮助我们找出内存泄漏的根源,例如查找长时间存活且占用...

    MAT解析hprof内存溢出分析工具OutOfMemoryError-java程序开发

    MAT(Memory Analyzer Tool)是IBM提供的一款强大的Java内存分析工具,它专为解决此类问题而设计,帮助开发者深入理解内存消耗,有效地定位内存泄漏和性能瓶颈。 MAT的使用方法和功能详解: 1. **数据获取**:首先...

    java 内存dump分析和thread dump(java core)分析

    1. **VisualVM**:除了内存分析,它还可以解析Thread Dump,展示每个线程的详细状态,帮助找出可能的死锁或阻塞。 2. **jstack**:JDK自带的命令行工具,可以直接生成Thread Dump,并解析输出,方便在命令行环境...

    mac_mat android内存泄漏分析工具

    为了有效地诊断和解决这些问题,开发者需要借助专门的内存分析工具。"mac_mat android内存泄漏分析工具"就是这样一个针对Android平台的工具,特别适合在Mac环境下对应用进行内存泄漏检测。 MAT(Memory Analyzer ...

    ScrollTextView的内存泄漏dump文件

    ScrollTextView的内存文件,用来分析内存泄漏。

    heapdump分析工具

    文件列表中的`ha39.jar`可能是用于生成或分析heapdump的工具,它可能包含了特定的内存分析算法或工具集。这类工具通常需要与JVM配合使用,通过读取heapdump文件,提供更便捷的分析界面和功能。 `readme.zip`可能...

    堆dump分析工具Eclipse Memory Analyzer

    总之,Eclipse Memory Analyzer是Java开发者诊断内存问题不可或缺的工具,它通过丰富的视图和报告,使复杂的内存分析变得直观易懂,帮助开发者优化内存管理,提高应用的稳定性和性能。通过熟练掌握MAT,开发者可以...

    MemoryAnalyzer、phd格式内存分析工具

    MemoryAnalyzer,即MAT(Memory Analyzer Tool),是一款由Eclipse基金会开发的强大的Java内存分析工具,尤其适用于IBM JVM(openj9)上的heap dump文件分析。本文将详细介绍MemoryAnalyzer的特性和功能,以及如何...

    java内存泄露、溢出检查方法和工具

    2. **使用Memory Analyzer(MAT)分析**:MAT是一款由Eclipse基金会开发的强大内存分析工具,可用于分析上述生成的堆转储文件。从提供的`MemoryAnalyzer-1.2.1.20121105-win32.win32.x86.zip`文件中解压并运行MAT,...

    使用Android Studio检测内存泄露(LeakCanary)

    内存泄露在Android开发中是一个非常重要的问题,因为它可能...定期进行性能测试和内存分析,可以帮助开发者发现并修复潜在的问题,提升用户体验。记住,良好的编程习惯和对内存管理的深入理解,是防止内存泄露的关键。

    android_内存泄露分析_mat整理.pdf

    MAT(Memory Analyzer Tool)是Eclipse推出的一款强大的Java内存分析工具,特别适用于Android应用的内存泄露检测。MAT可以帮助开发者快速定位内存泄露的位置,优化内存管理,提高应用的稳定性和效率。 ### 安装MAT ...

    Mac OS java内存分析工具MAT

    **Mac OS上的Java内存分析工具MAT** 在Java应用程序开发中,内存管理是至关重要的,特别是对于大型、长期运行的应用程序,内存泄漏可能导致性能下降甚至系统崩溃。为了有效地诊断和解决这些问题,开发人员需要借助...

    android_内存泄露分析_mat参考.pdf

    MAT(Memory Analyzer Tool)是Eclipse项目提供的一款强大的内存分析工具,尤其适用于检测Java应用的内存泄露。以下将详细介绍MAT的使用方法和相关概念。 **工具安装** MAT的安装有两种方式:单机版和集成版。单机...

    ha26,dump分析

    使用这个工具,开发者和运维人员能够详细地分析内存dump,从而解决系统中的性能问题、内存泄漏或其他异常情况。具体的操作流程可能包括加载dump文件,解析关键信息,如堆内存状态、线程堆栈、类加载信息等,并通过...

    Android应用程序内存泄漏的分析.pdf

    HPROF文件是分析内存泄漏时的关键数据来源。 7. Android虚拟机(VM):Android应用程序在运行时都是在Android虚拟机上执行的,而Android的虚拟机与Java虚拟机(JVM)有所不同,它是基于寄存器的Dalvik虚拟机。在...

    IBM WEBSPHERE heapdump分析工具 ha456

    生成的heapdump文件通常是一个.hprof格式的二进制文件,包含了JVM内存中的所有对象和类的信息。为了解析这些信息,我们需要使用专门的分析工具,这就是"ha456.jar"发挥作用的地方。ha456是一个IBM提供的轻量级heap...

    android手机测试中如何查看内存泄露

    为了更好地定位内存泄露的原因,我们需要使用特定的工具和技术来生成和分析.hprof文件。下面将详细介绍在Android手机测试中如何生成.hprof文件。 1. **准备工作**: - **开启Eclipse的DDMS透视图**:首先确保...

    android_内存泄露分析_mat[归纳].pdf

    MAT是Eclipse项目的一部分,提供了一种直观的方式来分析Java堆内存的状况,帮助开发者定位内存泄露。其主要功能包括: 1. **生成.hprof文件**:这是MAT分析内存的关键。通过Eclipse的DDMS (Dalvik Debug Monitor ...

Global site tag (gtag.js) - Google Analytics