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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是几款常用的 Android 卡顿分析工具及使用介绍: 1. Systrace Systrace 是 Android SDK 提供的一款系统级分析工具,可以用于分析系统运行时的性能问题,包括 CPU 使用率、内存使用情况、线程运行情况、应用程序启动时间等等。使用 Systrace 可以帮助开发者快速定位应用程序卡顿的原因。 使用方法: 1)确保 Android SDK 中已经安装了 Systrace 工具。 2)在终端中输入以下命令,启动 Systrace 工具: ```python python systrace.py --time=10 -o mytrace.html gfx wm view sched freq idle ``` 其中,--time 参数指定采样时间,-o 参数指定输出文件名,gfx、wm、view、sched、freq、idle 参数指定要监控的系统事件。 3)在终端中输入以下命令,停止 Systrace 工具: ```python Ctrl + C ``` 4)使用浏览器打开输出的 HTML 文件,即可查看 Systrace 分析结果。 2. Traceview Traceview 是 Android SDK 提供的一款应用程序级分析工具,可以用于分析应用程序在运行时的性能问题,包括方法调用时间、内存使用情况、线程运行情况等等。使用 Traceview 可以帮助开发者定位应用程序卡顿的原因。 使用方法: 1)在应用程序代码中插入 Trace 开始和结束语句,例如: ```java Debug.startMethodTracing("mytrace"); // 要分析的代码逻辑 Debug.stopMethodTracing(); ``` 2)在 Android Studio 中打开应用程序项目,选择菜单栏中的 Run -> Profile 'app',打开 Profiler 工具。 3)在 Profiler 工具中选择 CPU 标签页,点击 Record 按钮开始录制 Trace 数据。 4)在应用程序中操作,触发卡顿问题。 5)点击 Stop 按钮停止录制 Trace 数据。 6)在 Profiler 工具中选择 CPU 标签页,点击 Open in Traceview 按钮,打开 Traceview 工具。 7)在 Traceview 工具中查看 Trace 数据,定位应用程序卡顿的原因。 3. Profiler Profiler 是 Android Studio 提供的一款性能分析工具,可以用于分析应用程序的性能问题,包括 CPU 使用率、内存使用情况、线程运行情况等等。使用 Profiler 可以帮助开发者快速定位应用程序卡顿的原因。 使用方法: 1)在 Android Studio 中打开应用程序项目,选择菜单栏中的 Run -> Profile 'app',打开 Profiler 工具。 2)在 Profiler 工具中选择 CPU 标签页,点击 Record 按钮开始录制性能数据。 3)在应用程序中操作,触发卡顿问题。 4)点击 Stop 按钮停止录制性能数据。 5)在 Profiler 工具中查看性能数据,定位应用程序卡顿的原因。 4. CTS (Compatibility Test Suite) CTS 是 Android SDK 提供的一款兼容性测试工具,可以用于测试应用程序的兼容性和性能。CTS 可以帮助开发者发现应用程序中的性能问题,包括卡顿、崩溃等等。 使用方法: 1)在 Android SDK 中安装 CTS 工具。 2)在终端中输入以下命令,运行 CTS 测试: ```python cts-tradefed run cts --plan CTS --device <device_id> ``` 其中,--plan 参数指定测试计划,--device 参数指定测试设备。 3)查看测试结果,定位应用程序卡顿的原因。 总之,Android 卡顿分析工具种类繁多,开发者可以根据实际需要选择合适的工具进行分析和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值