traceView文件如何分析

xiaoxiao2021-02-28  91

介绍

列名描述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介绍

转载请注明原文地址: https://www.6miu.com/read-64155.html

最新回复(0)