zoukankan      html  css  js  c++  java
  • 【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与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每一个函数的性能。



  • 相关阅读:
    鸟哥的 Linux 私房菜Shell Scripts篇(一)
    证券投资基金会计核算业务指引
    在LINUX上部署SOFA
    bash: sz: command not found
    git常用命令
    git删除指定commit
    dubbo-本地直连
    java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
    设置Chrome忽略网站证书错误
    mybatis-传多个参数
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6912964.html
Copyright © 2011-2022 走看看