在profile里选择cpu后可以查看cpu的调用情况。
读懂页面
一共有3个轴
1、事件时间轴:
Activity的各种变化,用户的与页面的各种交互,都会在这里记录。
- 用户的交互事件对应粉红色的点。
- Activity的变化对应横轴,打开某个页面会显示绿色的长条等。这也是一种查看当前页面的方式。
2、cpu占用率:
绿色的部分表示当前进程占用的cpu,浅色表示其他app占用的量。悬浮在上面时,还会出现当前app的线程数量。
3、线程活动时间轴:
列出了所有的线程的活动情况。不同的块状颜色标明了线程不同的状态:
- 绿色:正在运行
- 黄色:出于活动状态,但是在等待一项I/O操作才能完成他的操作
- 线程正在休眠,不使用任何cpu
开始记录
1、点击Record,开始记录当前的cpu使用情况。
2、要判断执行哪些操作时会耗时长,则执行这些操作。
2、点击stop,停止记录当前的cpu使用情况。
读懂跟踪数据
1、选择时间段。
可以滑动滑标,选择需要记录时间内的某一段来研究。
2、用户交互事件与页面变化长按滑动可以勾选特定的时间段来查看。单机最左侧可以选择某个线程来分析。
4、Analysis分析块
(1)顶部可以切换线程。
(2)不同的信息展示模式
- 摘要模式
提供了一些信息摘要,可以看到底层调用的情况,参考价值不大。
- Top Down模式
可以按照底层方法被调用的时间来排序,并且可以点击展开查看调用链中,每个方法的耗时时间,以定位到app代码中耗时较长的方法。
- Flame chart模式
这种模式是最直观的,可以看到每个方法的耗时时间和调用关系。
通过按w
,可以将试图变大,方便查找。按s
,将视图缩小。
不同颜色表示不同包中的方法:
- 红色表示android系统方法
- 深黄色表示java包的方法
- 淡黄色表示其他,包括了我们自己app中的方法。
悬浮在方法上,可以看到方法的具体耗时。双击可以跳转到具体的方法。
- Bottom Up模式
直接将所有方法按照耗时时间列出。同城底层方法都在比较前面,所以要找到app中耗时的方法并不是很方便。
(3)筛选功能
在不同的模式下,都可以进行筛选,但是只有flame chart模式下,筛选结果是比较明显的。