性能优化之内存泄漏(三)分析工具(二)

一、AndroidStudio的Heap Snapshot工具

Heap Snapshot能做什么?

获取Java堆内存详细信息,可以分析出内存泄漏的问题

Heap Dump启动
Paste_Image.png

点击图中红色标注的按钮,就会显示我们的Heap Snapshot面板

Heap Snapshot面板
Paste_Image.png

该面板里的信息可以有三种类型:app heap/image heap/zygote heap.
分别代表app 堆内存信息,图片堆内存信息,zygote进程的堆内存信息。

A区域
Paste_Image.png
B区域

当我们点击某个类时,右边的B区域会显示该类的实例化对象,这里面会显示有多少个实体,以及详细信息。


Paste_Image.png

当你点击某个对象时,将展开该对象内部含有哪些对象,同时C区域也会显示哪些对象引用了该对象:


Paste_Image.png
C区域
Paste_Image.png

某对象引用树对象,在这里面能看出其没谁引用了,比如在内存泄漏中,可以看出来它被谁引用,比如上图,引用树的第一行,可以看出来,该对象被Object[12]对象引用,索引值为1,那我们展开后,可以看到,该Object[12]是一个ArrayList.


Paste_Image.png
Android studio新面板:

较之前添加了一个数据显示方式的选择,可以选择类名排列或者包名排列:


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

推荐阅读更多精彩内容