1. Heap Viewer 如何使用
通过不断点击 Cause GC 进行刷新 App 内存更新,例如我们可以手动 GC 10~20次,查看 Heap Size 的内存波动情况,只要能稳定到一定数值,而不是不断累计增长,来排除内存泄露可能性。
2. 字段解释
列名 | 意义 |
---|
Heap Size | 堆栈分配给App的内存大小[非常重要的观察参数] |
Allocated | 已经分配使用的内存大小 |
Free | 空闲的内存大小 |
% Used | Allocated/Heap Size 使用率 |
Objects | 对象数量 |
列名 | 意义 |
---|
free | 空闲的对象 |
data object | 数据对象,类类型对象[非常重要的观察参数] |
class object | 类类型的引用对象 |
1-byte array(byte[], boolean[]) | 一个字节的数组对象 |
2-byte array(short[], char[]) | 两个字节的数组对象 |
4-byte array(object[], int[], float[]) | 四个字节的数组对象 |
8-byte array(long, double[]) | 八个字节的数组对象 |
non-java object | 非 java 对象 |
列名 | 意义 |
---|
Count | 数量 |
Total Size | 总共占用的内存大小 |
Smallest | 将对象占用内存的大小从小往大排,排在第一个的对象占用的内存大小 |
Largest | 将对象占用的大小从小往大排,排在最后一个对象占用的内存大小 |
Median | 将对象占用的大小从小往大排,排在中间的对象占用的内存大小 |
Average | 平均值 |