Android性能分析工具Profile学习
Posted LVXIANGAN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android性能分析工具Profile学习相关的知识,希望对你有一定的参考价值。
1、dump the java heap 是什么意思?
- dump:在计算机领域,dump译作“转储”:把内存某一时刻的内容,dump(转存,导出,保存)成文件。
- heap:堆。对应stack(栈),为什么不是dump the java stack?
- 堆(heap)和 栈(stack)有什么区别?
堆:特点是 大,速度慢,无序,存复杂的数据,(存放对象)主要存放创建(new)出来的对象。存取速度慢,可以运行时动态分配内存。
栈:特点是 小,速度快,有序,存简单的数据(基本数据类型变量、对象的引用变量(即指针)),变量出了作用域就会自动释放。栈的内存管理是通过栈的"后进先出"模式来实现的。 static变量:是放堆内存中存放,堆内存地址,存放在栈,以便于高速访问
2、dump the java heap 和 record 有什么区别?
- dump the java heap:你的程序当中有哪些内存对象,记录的是某一刻的内存快照
- record:记录一段时间内的对象创建情况
3、Shallow Size 和 Retained Size 的区别?
Shallow Size
对象自身占用的内存大小,不包括它引用的对象。
针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总和。当然这里面还会包括一些java语言特性的数据存储单元。
针对数组类型的对象,它的大小是数组元素对象的大小总和。
Retained Size
Retained Size=当前对象大小+当前对象可直接或间接引用到的对象的大小总和。(间接引用的含义:A->B->C, C就是间接引用)
换句话说,Retained Size就是当前对象被GC后,从Heap上总共能释放掉的内存。
不过,释放的时候还要排除被GC Roots直接或间接引用的对象。他们暂时不会被被当做Garbage。
4、hprof是什么文件?
hprof 文件是 Java 的 内存快照文件(Heap Profile 的缩写),是java进程的内存镜像文件,里面包含了内存堆详细的使用信息。heap dump也是可以保存成为HPROF文件的,点击可保存起来,用于以后分析,或用其他工具分析。
5、使用MAT工具
参考:https://developer.android.google.cn/studio/profile/memory-profiler.html
以上是关于Android性能分析工具Profile学习的主要内容,如果未能解决你的问题,请参考以下文章