Android Studio TraceView性能优化分析

来源:互联网 发布:有什么人工智能机器人 编辑:程序博客网 时间:2024/05/29 16:51

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
这里写图片描述

会出来*.trace
这里写图片描述

TraceView工具面板介绍

这里写图片描述

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 方法耗时排行的时间。

1 0
原创粉丝点击