步步登高--Android查看方法耗时利器TraceView

作者: DDDDLU | 来源:发表于2018-05-03 21:13 被阅读47次

    1.简介

    Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。android开发中可以用来:方法耗时,性能优化

    2.使用

      1. 生成.trace文件
        在我们需要追踪的代码中,前后输入:
        Debug.startMethodTracing("test");//设置参数为生成的trace文件名

        CODE

      Debug.stopMethodTracing();
      然后运行项目,此时在设备的SD下会生成test.trace文件

    • 2.拷贝文件到电脑
      在电脑可以使用adb命令后,输入如下(把文件拷贝到d:/info目录下):
      adb pull /sdcard/test.trace D:\info

    • 3.打开traceview
      进入SDK的tools目录后,命令窗口执行traceview,如下:
      traceview D:\info\dmtrace.trace.
      此时traceview视图便会显示出来:


      这里写图片描述

    3.详细介绍

    • 1.上部分


      这里写图片描述

    X轴表示时间消耗,单位毫秒,Y轴表示各个线程,每个线程中不同方法使用不同颜色表示,颜色面积宽,表示占用cpu时间越长

    • 2.下部分


      这里写图片描述
    这里写图片描述
    列1:"Name"表示函数名。
    双击函数名,可以看到在上半界面是时间轴面图(Timeline Panel)看他的所消耗的时间段。
    双击函数名左边的"+"展开后可以看到,该函数的"parents"和"children"
    列2:"incl%"表示函数的Inclusive time在整个MethodTracing时间里占的百分比。
    列3:"Inclusive"表示Inclusive time。
    列4:"Excl%"表示函数的Exclusive time在整个MethodTracing时间里占的百分比。
    重点列:我们关注点
    "Calls+RecurCalls/Total"表示对函数的调用次数(包括递归调用)。如图2的toplevel那列为"30+0"表示30次非递归调用,0次递归调用.
    Cpu Time / Call 表示该方法耗时
    Real time/Call 实际实际
    Real time 包括了cpu的上下文切换、阻塞、GC等等,所以时间比较长,所以我们性能分析重点关注:Calls+RecurCalls/Total, Cpu Time / Call这两列
    • 4.方法查找
      在视图底部,有find一栏,我们可以在这里输入方法名,迅速的找到相应方法分析

    相关文章

      网友评论

        本文标题:步步登高--Android查看方法耗时利器TraceView

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