Heap Snapshot能做什么?
获取Java堆内存详细信息,可以分析出内存泄漏的问题
Heap Dump启动
在内存面包中,点击图中红色标注的按钮,就会显示我们的Heap Snapshot面包
Heap Snapshot面板
Heap Snapshot详细信息面板
该面板里的信息可以有三种类型:app heap/image heap/zygote heap.
分别代表app 堆内存信息,图片堆内存信息,zygote进程的堆内存信息。
A区域
列举了堆内存中所有的类,一下是列表中列名:
| 名称 | 意义 |
|---|---|
| Total Count | 内存中该类的对象个数 |
| Heap Count | 堆内存中该类的对象个数 |
| Sizeof | 物理大小 |
| Shallow size | 该对象本身占有内存大小 |
| Retained Size | 释放该对象后,节省的内存大小 |
B区域
当我们点击某个类时,右边的B区域会显示该类的实例化对象,这里面会显示有多少个实体,以及详细信息。
| 名称 | 意义 |
|---|---|
| depth | 深度 |
| Shallow Size | 对象本身内存大小 |
| Dominating Size | 管辖的内存大小 |
当你点击某个对象时,将展开该对象内部含有哪些对象,同时C区域也会显示哪些对象引用了该对象:
C区域
的某对象引用树对象,在这里面能看出其没谁引用了,比如在内存泄漏中,可以看出来它被谁引用,比如上图,引用树的第一行,可以看出来,该对象被Object[12]对象引用,索引值为1,那我们展开后,可以看到,该Object[12]是一个ArrayList.
Android studio1.4的更新
1.4的面板有一些变化:
较之前添加了一个数据显示方式的选择,可以选择类名排列或者包名排列:
本文介绍如何利用HeapSnapshot工具获取Java堆内存详细信息,分析内存泄漏问题,并通过HeapSnapshot面板展示内存使用情况,包括类对象数量、大小等关键信息。此外,还介绍了Android Studio 1.4版本的更新,提供了数据展示方式的选择。
1720

被折叠的 条评论
为什么被折叠?



