zoukankan      html  css  js  c++  java
  • Android应用开发之性能测试之TraceView

    传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

            TraceView是Android平台下的性能测试工具,它以图形化的方式向我们展现待跟踪程序的性能,并且能具体到method。TraceView包含两个部分,一部分用于程序执行过程中采集数据,另一部分用于在程序执行完毕后对数据进行分析。

    1采集数据

            用户可以选择激活或者取消实时数据采集功能。当该功能激活以后,TraceView进程就会记录下用户程序每一次的方法调用和耗时。并将数据保存到SDCard上的一个二进制文件中。

            在程序中调用android.os.Debug.startMethodTracing()方法启动实时数据采集,代码如下:

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //启动实时数据采集 "/sdcard/calc.trace"
            Debug.startMethodTracing("calc");
        }
        protected void onStop(Bundle savedInstanceState) {
            //停止实时数据采集
            Debug.stopMethodTracing();
            super.onStop();
        }

    2分析数据

            把sdcard的二进制数据文件导出到电脑上,在Dos窗口上进入Android SDK的tools目录,然后执行命令:
            traceview c:\\calc.trace
            执行指令后将打开图形化分析界面。

            窗口的上半部分是时间轴面图(Timeline Panel),右上角的值为方法执行时间的总和。窗口的下半部分是对各个方法调用的汇总图(Profile Panel)。
            界面上方的尺子代表了MethodTracing的时间段(从Debug.startMethodTracing("")到Debug.stopMethodTracing()的时间)。

    列的名称 列的涵义
    Name 方法的名称
    Incl % 执行方法总时间在整个MethodTracing时间里所占百分比
    Inclusive 执行方法总时间
    Excl % 执行方法基本操作的时间(不包括调用子方法的耗时)在整个MethodTracing时间里所占百分比
    Exclusive 执行方法基本操作的时间(不包括调用子方法的耗时)
    Calls+Rec 执行方法的次数(如:"4+0"表示4次非递归调用,0次递归调用;"3/2"表示3次非递归调用,2次递归调用。)
    Cpu Time 执行方法的平均时间(即执行方法总时间/执行方法的次数)       
            注:如果方法A调用方法B,那么方法A称为方法B的"parents",方法B称为方法A的"children"。最下边的搜索框(Find:),可以进行方法类等搜索。
  • 相关阅读:
    一款单机游戏应该有的一些要素
    终于成功注册了Amazon.com的Affiliate
    创办公司的步骤不完全讲解(二)
    继续新环境没有asp.net mvc3项目模板的问题
    在自己的博客上打个广告,Kinect for Windows要的来
    数据仓库走向灭亡??
    Oracle & Endeca
    无题
    无题
    【译著】第7章 SportsStore:一个真实的应用程序 — 《精通ASP.NET MVC 3框架》
  • 原文地址:https://www.cnblogs.com/innosight/p/3271235.html
Copyright © 2011-2022 走看看