介绍
列名 | 描述 |
---|---|
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只能作为参考,给出可疑点,实际以去掉之后打日志计算的时间为主