systrace的简单介绍及使用

systrace的简单介绍

systrace是 Android 4.1 之后,引入的分析设备性能的主要工具,是Linux内核中的主要跟踪机制。
Systrace 允许你收集和检查设备上运行的所有进程的计时信息。 它包括 Android kernel 的一些数据(例如:CPU调度信息,APP Thread),并且会生成HTML报告,方便用户查看分析 trace 内容。

以下内容都是以AndroidStudio开发工具所讲


使用的快捷键

常用快捷键有

w---放大   a---左移  s---缩小  d--右移  m---框选具体的一帧 ctrl+f 查找具体的内容

数字键:

其他快捷键,大家慢慢研究!


抓取systrace的方式

windows版本

    DDMS(Dalvik Debug Monitor Service),是Android开发环境中的Dalvik虚拟机调试监控服务。现如今的版本升级之后,DDMS在AndroidStudio的控制面板中已经找不到了,被换名为monitor了,位置在 C:\ xxxx\AppData\Local\Android\Sdk\tools\monitor.bat,可以使用CMD小窗口直接输入monitor即可打开(保证Sdk安装位置是按照AndroidStudio的默认安装路径)。打开就长这样:

Linux版本

   (1)命令抓取:在Android/Sdk/platform-tools/systrace 目录下,进入终端,执行:$ python systrace.py [options] [categories],一段时间后会自动生成一个 trace.xml 文件,在浏览器中输入chrome://tracing打开,拖动trace到浏览器进行查看。里面的options由自己选择,比如$ python systrace.py -t 10 -b 20480 -o trace.html 

-t 时间 单位s; -b 缓存大小; -o 文件位置

   (2)同Windows:找到Sdk下的monitor即可

systrace的入门基本知识

查看线程状态

systrace 会用不同的颜色来标识不同的线程状态, 在每个方法上面都会有对应的线程状态来标识目前线程所处的状态.

线程状态主要有下面几个

绿色 : 运行中 即Running time

点击绿色状态可以看到在具体哪个CPU上运行,以及运行时间等。

切入点:当Running time 时间过长,这时候可以和对比机比较CPU frequency是否一致,分析是否在同一个CPU 上,还是一个在大核一个在小核呢?

蓝色 : 可运行 即Runnable time

这种状态表示CPU 比较忙,等待调度

白色 : 休眠中 即Sleeping time

处于睡眠状态,分析时主要看下一个状态(即Runnable)被谁唤醒了,查看wake up from tid = xxx

橘色 : 不可中断的睡眠态 IO 即Uninterreptible-Block I/O

线程在I / O上被阻塞或等待磁盘操作完成,表示正在读取数据但是还没有把数据全部读取出来,一般会伴随着低内存等,具体问题还需要分情况

(这张图来自www.androidperformance.com)

紫色 : 不可中断的睡眠态 即Uniterreptible Sleeping

简单的介绍就到这里~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值