traceView文件如何分析

来源:互联网 发布:mac 终端登录mysql 编辑:程序博客网 时间:2024/05/20 19:16

介绍

列名 描述 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.使用方法(代码精确分析)

   Debug.startMethodTracing("ormLite");   queryAll(null);   queryColumn(null);   Debug.stopMethodTracing();

2.运行会在sd卡根目录生成ormLite.trace文件,pull出来

3.打开android device monitor
file->open File打开刚生成的trace文件

分析

总预览

首先打开incl cpu time 为100%的行,点击最外层0(topLevel)
这里面是消耗时间方法的预览

发现
queryAll(null);占74%
queryColumn(null);占16.7%
其它占比9.3%

底下为运行到的所有方法及其运行时间;因为子父方法混合在一起展示,父运行时间等于所有子方法运行时间之和。

单个方法分析

parents:调用这个方法的方法
children:它调用到的子方法,里面方法时间相加为这个方法消耗的时间,经测验过都是主线程消耗的时间。与直接打开筛选mainThread时间一致

説明

  • ddms打开的
    图1
    Incl Real Time为真是运行的时间,与在代码中打log的时间想一致,
    androidStudio直接打开的

  • androidStudio打开
    图2
    同一个方法里面,视图在同一行上,且以代码先后顺序,从左往右排列,时间短的可以放大看到

  • 因为加入了traceView之后影响性能,所以traceview只能作为参考,给出可疑点,实际以去掉之后打日志计算的时间为主

其它

直接用androidStudio打开的只是简化版的

参考文档

正确使用Android性能分析工具——TraceView

Android性能调优工具TraceView介绍

原创粉丝点击