Systrace分析知识点

3bd3725ddfbbfe4024051d3feb0e61fc.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、抓取Systrace
二、CPU模块知识点
三、input 点击事件处理流程
四、Vsync 事件处理
五、Android 绘制一帧流程分析
六、Camx Trace TAG开启方法
七、参考文献

一、抓取Systrace

1.1 使用手机抓取

使用Google 预留的开发者模式中的 系统跟踪 功能抓取systrace。
步骤:
设置--开发者模式--系统跟踪
trace文件保存路径:
/data/local/traces

96c4cd77cd18255af1deb45af08fd3f1.png

手机抓取trace

抓取完之后使用adb 命令 pull 出来即可

C:\Users\ >adb pull /data/local/traces .
/data/local/traces/: 1 file pulled, 0 skipped. 95.1 MB/s (51342186 bytes in 0.515s)

C:\Users\ >
1.2 python 命令抓取

参考命令如下:

python systrace.py -o mynewtrace.html sched freq idle am wm gfx view binder_driver hal dalvik camera input res

比较麻烦,需要安装环境,不推荐,有成熟脚本除外。

二、CPU模块知识点

2.1 CPU频率,CPU loading 计算

CPU loading 计算公式
CPU 负载loading = Wall duration ÷ 选择CPU 个数÷ 选择CPU的范围

80562a33d5cea77347db37ce700f334e.png

CPU Loading

2.2 Thread 在CPU中的状态
  • 绿色:运行中 Running
    对于在CPU上执行的进程,需要查看其运行时间、是否跑在该跑的核上、频率是否够等。

  • 浅绿色:可运行 Runnable
    对于在等待序列中的进程,需要查看是否有过多任务在等待、等待时间是否过长等。

  • 白色:休眠中 Sleeping
    这里一般是在等事件驱动。

  • 橘色:不可中断的睡眠态_IO_Block Uninterruptible Sleep | WakeKill - Block I/O
    线程在I / O上被阻塞或等待磁盘操作完成。

  • 紫色:不可中断的睡眠态 Uninterruptible Sleep
    线程在另一个内核操作(通常是内存管理)上被阻塞。

举例如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值