Android Studio TraceView性能优化分析

http://blog.csdn.net/androiddevelop/article/details/8223805
http://www.cnblogs.com/sunzn/p/3192231.html Android 编程下的 TraceView 简介及其案例实战

打开TraceView工具

打开DDMS 点击start Method Profiling 点击后会变灰
进行操作、完了之后stop Method Profiling
Android Studio TraceView性能优化分析_第1张图片

会出来*.trace
Android Studio TraceView性能优化分析_第2张图片

TraceView工具面板介绍

Android Studio TraceView性能优化分析_第3张图片

Traceview 面板分上下两部分
上面是时间轴面板 (Timeline Panel)
左侧显示的是线程信息
右侧黑色部分是显示执行时间段、白色是线程暂停时间段,
右侧鼠标放在上面会出现时间线纵轴,在顶部会显示当前时间线所执行的具体函数信息
下面是分析面板(Profile Panel) - 每一列内容
Inclusive time - 函数本身运行花费时间 + 函数调用其他函数时间

Exclusive time - 函数本身运行花费时间。

Calls + RecurCall/Total 调用 + 重复调用次数 / 函数总调用次数

Cpu Time/Call 总的Cpu时间与总的调用次数之比

表1-1 Profile Panel各列作用说明

列名 描述
Name 该线程运行过程中所调用的函数名
Incl Cpu Time 某函数占用的CPU时间,包含内部调用其它函数的CPU时间
Excl Cpu Time 某函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间
Incl Real Time 某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间
Excl Real Time 某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间
Call+Recur Calls/Total 某函数被调用次数以及递归调用占总调用次数的百分比
Cpu Time/Call 某函数调用CPU时间与调用次数的比。相当于该函数平均执行时间
Real Time/Call 同CPU Time/Call类似,只不过统计单位换成了真实时间

如何进行具体的分析

1. 如何定位到所关心的地方?

上面只是介绍了如何使用TraceView且有两种用法,但是有时使用第一种方式范围又不太精确,使用第二种添加代码的方式,可能有些地方又监听不到。这种情况可以尝试把开始或者结束放到延迟线程中,延迟一段时间在执行开始或者结束。

2. 如何查找出哪些地方比较耗时?

TraceView罗列出了是所有监听到的方法,当然也包括Android系统很多方法的耗时,如何在这么多方法里面查找到自己关心的? 可以通过TraceView 底部的find 来查找,通常Android app都是有包名的,可以先针对某些关心的列排序后,在通过包名进行一个个查找,这些就省去自己筛选出自己app 方法耗时排行的时间。

你可能感兴趣的:(Android进阶)