【Android】开发优化之——调优工具:TrackView,Method Profiling

Android SDK自带的tool TrackView 位于 sdk的tools文件夹下。使用方法为:进入到tools下,执行

traceview e:loginActivityTracing.trace

就可以。那trace文件怎么生成的呢。


有两种方式生成

1、使用代码生成,想调哪调哪。

仅仅须要在须要调用的地方调用

Debug.startMethodTracing("loginActivityTracing");

和结束调用的地方调用

Debug.stopMethodTracing();

就会在sd卡的根文件夹生成loginActivityTracing.trace文件。


2、没有代码呢,能够使用DDMS来生成。



这是開始。然后同一个button再点一次就生成.trace文件并打开了。




运行之后能够看到这样一个图片:



TraceView界面信息介绍
TraceView界面包含时间面板和方法面板
(1) 时间面板(Timeline Panel)
时间面板展示了每一个线程的运行情况,当中的[1]main即为ui主线程。


移动到某个位置能够查看该点相应的方法的运行信息,点击方法面板则会选中相应的方法。
能够左键按住不放选中区域放大局部精细查看。不同方法用不同颜色标注


 


(2) 方法面板(Profile Panel)
方法面板展示了全部方法的运行情况。点击某个方法能够查看在相应线程上的运行时间区域,并会显示其父方法及子方法。
每一个方法包含例如以下信息列,可点击某列进行排序,从而确定产生性能问题的函数:
Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call
全部的Time都是以毫秒计算。

每列详细含义及作用例如以下:
a. Incl表示将全部子函数耗时也计算在内,Excl则表示不包含子函数的调用时间。对照能够确定耗时操作发生是自身还是子函数中。


b. Cpu Time表示占用cpu运行的时间,Real Time包含Cpu Time以及等待、切换的时间等,所以一般都大于Cpu Time。对照能够推断耗时操作是否在cpu运行段内。


c. 上面四个指标相应的%表示函数在总时间的占比。方便查看某个函数的时间占比。


d. Calls+RecurCalls/Total表示被外部调用次数+递归次数/总次数。能够查看调用次数是否符合自己预期。
e. Cpu Time/Call, Real Time/Call表示总的Cpu Time及Real Time与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每一个函数的性能。



原文地址:https://www.cnblogs.com/wzjhoutai/p/6912964.html