自学内容网 自学内容网

学习AndroidPerfetto基础一

1.哔哩哔哩学习视频:

Android Perfetto 基础和案例分享_哔哩哔哩_bilibili

2.Perfetto的简单介绍

Perfetto 是一个用于性能检测进而追踪分析的生产级开源工具

Perfetto提供上帝视角,背后需要整个Android系统的知识储备

Perfetto由Google开发,2017开始第一笔提交

Perfetto已经全面取代Systrace工具

Perfetto拥有完整的文档:https://perfetto.dev/docs/

系统开发者使用Perfetto来分析系统性能、CPU调度、响应速度、系统流畅行、内存、耗电问题

Perfetto也被用于性能测试、偶然性性能问题抓取、文件批处理、竞品分析等领域

例如:Perfetto - System profiling, app tracing and trace analysis - Perfetto Tracing Docs,可以看到perfetto提供的框架介绍

0

3.如何抓Perfetto

3.1 命令行抓取

实际项目中主要是使用命令行抓取最方便,也是大部分开发者使用最多的方式

adb shell atrace -o /sdcard/systrace.trace -z -b 50000 -t 30 am wm view res ss gfx view hal bionic pm sched irq freq idle disk sync binder_driver binder_lock memreclaim dalvik input 50000:缓冲区的大小,单位是消息数。 30:抓取时间,单位是秒。 导出trace adb pull /sdcard/systrace.trace xxx(文件存放路径) 提供android log,如果有root权限可以同步提供kernel log(dmesg) android log:adb shell logcat > logcat.txt kernel log:adb shell dmesg > dmesg.txt 注:在测试过程中,需要同步抓取trace、android log、kernel log(如果有root),同时备注发生问题的时间点。 抓取命令 adb shell perfetto -t 10s sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory power -o /data/misc/perfetto-traces/trace_file_.perfetto-trace 10:抓取时间,单位是秒 2.导出trace adb pull /data/misc/perfetto-traces/trace_file_.perfetto-trace D:\Download

3.2 手机界面抓取

路径:设置-》开发者选项-》启动系统跟踪

0

3.3 网页端抓取

0

4.Perfetto基本的View介绍

4.1 Slice

表示嵌套、有时间限制的操作。例如一个切片可以覆盖从函数从开始执行到返回的时间段、从网络加载文件所花费的时间。对应代码中的Trace.beginSection/ATRACE_BEGIN记录的事件

例如下图Choreographer#doFrame、animation、traversal都是一个Slice.

0

上下层多个slice也可以看出嵌套的关系,这种嵌套关系,有点像函数调用栈的关系

4.2 Counter

具有随着时间变化值的事件,例如一个轨迹事件可以记录进程执行期间的瞬时内存使用情况。对应代码中Trace.traceCounter/ATRACE_INT记录的事件

0

例如鼠标移动过去显示一个数字7

4.3 Scheduler Slices

调度器切片指示哪个线程在何时被调度到哪个CPU上

0

可以看到基于CPU进行统计,例如上述的大小核

4.4 运行状态

Perfetto上的task都会有CPU state + Slice,分上下两行显示

0

4.5 Matric

Perfetto 预先通过解析脚本解析出来的信息,主要是定制的,下述是荣耀手机上的定制信息

0

4.6 实时计算

实时计算并显示结果到UI,例如我们点下CPU state中的running中的critical path,就会显示如下Thread的调用栈信息

0

5.Expected timeline和ActualTimeline表示App性能

App janks 卡顿分析

0

例如可以快速看下是否很多红色表述的掉帧

0

6. Perfetto上展示logcat信息

0


原文地址:https://blog.csdn.net/su749520/article/details/144779355

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!