美文网首页TECNO_Performance
Traceview 使用教程

Traceview 使用教程

作者: 冬之菊 | 来源:发表于2016-08-28 14:48 被阅读0次

    如下为谷歌官方给出的使用方法:

    地址:http://developer.android.com/intl/zh-cn/tools/performance/traceview/index.html

    数据分析界面如下图所示:

    上图中的下半部分为 Profile Panel(分析面板),Profile Panel 是 TraceView 的核心界面,其内涵非常丰富。它主要展示了某个线程(先在Timeline Panel 中选择线程)中各个函数调用的情况,包括 CPU 使用时间、调用次数等信息。而这些信息正是查找 hotspot 的关键依据。所以,对开发者而言,一定要了解  Profile Panel 中各列的含义。下表列出了 Profile Panel 中比较重要的列名及其描述。

    如下图所示:

    Traceview实战:

    如何利用TraceView来查找hotspot。一般而言,hotspot包括两种类型的函数:一类是调用次数不多,但每次调用却需要花费很长时间的函数。一类是那些自身占用时间不长,但调用却非常频繁的函数。测试背景:APP 在测试机运行一段时间后出现手机发烫、卡顿、高 CPU 占有率的现象。将应用切入后台进行 CPU 数据的监测,结果显示,即使应用不进行任何操作,应用的  CPU 占有率都会持续的增长。按照TraceView简介中的方法进行测试,TraceView结果UI显示后进行数据分析,在Profile Panel中,选择按CpuTime/Call进行降序排序(从上之下排列,每项的耗费时间由高到低)得到如图所示结果:

    图中 ImageLoaderTools$2.run()是应用程序中的函数,它耗时为 1111.124。然击 ImageLoaderTools$2.run() 项,得到更为详尽的调用关系图:

    上图中 Parents 为 ImageLoaderTools$2.run()方法的调用者:Parents (the methods calling this method);Children 为 ImageLoaderTools$2.run() 调用的子函数或方法:Children(the methods called by this method)。本例中 ImageLoaderTools$2.run() 方法的调用者为 Framework 部分,而  ImageLoaderTools$2.run() 方法调用的自方法中我们却发现有三个方法的 Incl  Cpu Time % 占用均达到了 14% 以上,更离谱的是 Calls+RecurCalls/Total 显示这三个方法均被调用了35000 次以上,从包名可以识别出这些方法为测试者自身所实现,由此可以判断 ImageLoaderTools$2.run() 极有可能是手机发烫、卡顿、高 CPU 占用率的原因所在。

    -

    相关文章

      网友评论

        本文标题:Traceview 使用教程

        本文链接:https://www.haomeiwen.com/subject/nutssttx.html