Android内存分析工具

做内存优化前,需要了解当前应用的内存使用现状,通过现状去分析哪些数据类型有问题,各种类型的分布情况,以及在发现是哪些具体对象导致的,这就需要相关工具来帮助我们进行分析。以下介绍常用的几种内存分析工具

Memory Monitor

Memory Monitor 是一款使用简单的图形化工具,可以很好地监控系统或应用的内存使用情况

主要提供以下功能:

(1).显示可用和已用内存,并且以时间为维度,实时反应内存分配和回收情况。

(2).快速判断应用程序的运行缓慢是否由于过度的内存回收导致。

(3).快速判断应用是否由于内存不足导致程序崩溃。

Heap Viewer

Heap Viewer 的主要功能是查看不同数据类型在内存中的使用情况,可以看到当前进程中的 Heap Size 的情况,包含有哪些类型的数据,以及各种类型的数据占比情况。通过分析这些数据来找到大的内存对象,再进一步分析这些大对象,进而通过优化减少内存开销,也可以通过数据的变化发现内存泄漏

主要有以下功能:

(1)实时查看App分配的内存大小和空闲内存大小

(2)发现Memory Leaks

Heap Viewer不光可以用来检测是否有内存泄漏,对于内存抖动,也可以用该工具检测,因为内存抖动的时候,会频繁发生GC,这个时候我们只要开启Heap Viewer,就可以观察数据的变化。如果发生内存抖动,会观察到数据在一段时间内频繁更新

Allocation Tracker

Memory Monitor 和 Heap Viewer 都可以很直观且实时地监控内存的使用情况,还能发现内存问题,但发现内存问题后不能再进一步找到原因,或者发现一块异常内存但不能区分是否正常,不能定位到具体的类和方法。这时可以使用另一个内存分析工具 Allocation Tracker,进行更详细的分析, Allocation Tracker 可以分配跟踪记录应用程序的内存分配,并列出了它们的调用堆栈,可以查看所有对象内存分配的周期

Memory Analyzer Tool(MAT)

MAT 是一个功能丰富的 Java Heap 分析工具,通过分析 Java 进程的内存快照 HPROF 分析,从众多的对象中分析,快速计算出在内存中对象占用的大小,查看哪些对象不能被垃圾收集器回收,并可以通过视图直观地查看可能造成这种结果的对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容