TraceView基本知识

使用集成开发工具启动TraceView

  • 进入DDMS视图&&要分析的进程处于debug模式&&跳转到要分析的页面
  • 如下图所示,点击start Method profiling 按钮,开始获取数据
  • TraceView基本知识_第1张图片
    弹出Profiling Options对话框,这里使用默认值“Sample base Profiling”.
  • 等待5秒后,如下图所示,点击“Stop base Profiling”
  • TraceView基本知识_第2张图片
    ,打开如下页面:
    TraceView基本知识_第3张图片
    ok,到这里就获取到了TraceView内容了。

添加Debug方法获取/分析TraceView文件

  • 在要调试的页面中要调试方法的起止位置添加
 // start tracing to "/sdcard/aaa.trace" Debug.startMethodTracing("aaa");
 // stop tracing
    Debug.stopMethodTracing();

没有明确目标的话,不妨将这两个方法分别放入Activity的onCreate和onDestory里面。

  • 在debug状态执行该方法(通俗的讲使用相关操作点击等让该方法执行)
  • 将生成的文件上传到计算机D盘下
adb pull /sdcard/aaa.trace D:/
  • 定位到~/sdk/tools ,执行monitor,在打开的页面执行File->Open Files…
    TraceView基本知识_第4张图片
    ok,打开了!

讲述一下这个页面分析

  • 整个分析页面分为上下两部分。上面部分:时间线面板;下面部分:轮廓面板。
  • 时间线面板左侧是在要分析的方法执行期间运行的线程,右侧是该线程对应的方法执行情况。从左到右也代表了时间的流逝,每一种颜色代表了一种方法。颜色块的在水平方向上的长度也就是方法执行的时间。
  • 轮廓面板展示的内容就很丰富了,展示了各个方法执行时占用的资源情况。这里强调一下inclusive time 和exclusive time。inclusive time指的是该方法执行的总时间(包括它调用的其他方法的执行时间),exclusive time指的是该方法执行的时间(包括它调用的其他方法的执行时间)。要对哪一个属性进行排序,在该属性上单击即可。在左侧的方法名上单击就会将该方法展开,其中包括该方法Parent(调用该方法的方法)和Children(该方法内调用的其他方法)。对某一个参数进行排序后,然后对占用时间比较多的方法进行层层展开,基本上就可以定位问题的出处了!

翻译地址

http://developer.android.com/tools/debugging/debugging-tracing.html#runningtraceview

你可能感兴趣的:(性能分析)