perfetto/systrace基础知识讲解-千里马android framework实战开发

线程状态查看

深绿色 : 运行中(Running)

在Running状态就代表着处于cpu上的运行中
状态作用:看某个方法是否耗时,可以通过测量Running时间长短判断,也可以进行竞品对比看看cpu能力如何,或者前后对比各个大小核cpu影响方法的耗时
可以看到通过选中可以知道该任务是在哪个cpu进行运行的
在这里插入图片描述

浅绿色 : 可运行(Runnable)

代表线程可以运行但当前没有真正运行中,需要等待 cpu 调度,这个时间长短代表着cpu调度快慢
重要作用:点击Runnable这个块,下面信息会显示当前线程唤醒者是谁,即可以清楚知道整个线程之间唤醒逻辑。
在这里插入图片描述

白色/无色: 睡眠中(Sleeping)

代表当前线程没有工作可以做,等待事件驱动干货,比如looper就是大部分时间睡眠,小部分时间有消息后处理消息
在这里插入图片描述

橙色Uninterruptible Sleep (IO)

代表不可以中断的休眠状态,一般线程在IO操作上阻塞了
不可中断状态实际上是系统对进程和硬件设备的一种保护机制。比如,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的。
在这里插入图片描述

紫红色Uninterruptible Sleep (Non IO)

不可中断的休眠状态,非IO导致,在等内核锁。通常是低内存导致等待、各种各样的内核锁。
在这里插入图片描述
Uninterruptible情况都可以点击后看到blocked方法是哪个

Blocked function   jbd2_log_wait_commit

各个部分区域详解

一般perfetto看trace时候都会针对某一个进程进行查看其运行,因为perfetto/systrace都是以进程为单位进行划分的,每个进程又分为若干个线程,接下来又是主要看一个个的线程情况。
线程一般会有2个条目,如下图所示:

在这里插入图片描述
上面条目描绘是这个线程当前的状态,最常见的有主要有Running,Runable,Sleeping等状态
下面条目就是描绘具体这个线程执行的哪些方法的任务块

1、线程状态信息,代表当前线程状态

在涉及到线程唤醒相关时候需要看这里
在这里插入图片描述

2、线程具体执行方法信息,描述有哪些方法正在执行执行

这个部分最重要,大部分时候其实都在看这个
在这里插入图片描述

3、Counter计数采样部分信息

这个部分和线程没啥关系,即不是说有单独一个线程在专门计数这个,可以理解为一个程序里面全局的一个变量值展示,比如在surfaceflinger的vsync时候就用到了
在这里插入图片描述

4、cpu执行块部分信息

在这里插入图片描述
主要有每个线程执行的任务块,和每个cpu的频率详情

5、async执行块部分信息

这个主要用于跟踪一个动画的开始与结束,比如ValueAnimator

在这里插入图片描述
一般对应代码如下:
Trace.asyncTraceBegin和Trace.asyncTraceEnd
在这里插入图片描述

相关perffto使用技巧

相关快捷按键和systrace通用:

W : 放大 perfetto , 放大可以更好地看清局部细节
S : 缩小 perfetto, 缩小以查看整体
A : 左移
D : 右移
M : 高亮选中当前鼠标点击的段

跨进程通讯的发起端与接受端跳转

同步跨进程情况:
在这里插入图片描述发起端如下,也可以直接点击跳转到接收端
在这里插入图片描述异步跨进程调用情况
在这里插入图片描述
注意这里只有个大的箭头,需要点击箭头看名字才可以判断是发送还是接收端

在这里插入图片描述*
注意:发起端名字带有是transaction,接收端带有的rev*

置顶功能

有一个置顶按钮,点击后可以把这个行放到perfetto最顶端
在这里插入图片描述
点击后如下:
在这里插入图片描述

主要使用场景:
在一些分析trace过程中涉及多个行需要联合分析,多个行的距离太远,没办法方便的对比查看,这个时候可以把关心的几个行都进行置顶查看

标记功能功能

在这里插入图片描述
主要用于分析过程中的一些标记时间点段,以防找补回去

本文章对应视频手把手教你学framework:
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
私聊作者+v(androidframework007)
点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频:https://www.bilibili.com/video/BV1Jg4y1C7fw/
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值