一、TraceView简介

TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。

TraceView是图形化的工具,最终它会产生一个图表,用于对性能分析进行说明。

TraceView可以跟踪到具体的Method

二、TraceView的原理

TraceView通过修改code,在需要调试的起始位置加入调试函数,程序运行之后会在SD的根目录下产生*.trace文件来保存运行时的数据,然后把*.trace文件考到pc机上,通过traceview命令对*.trace文件进行分析。

二、TraceView的使用

TraceView使用的前提是无论手机还是模拟器,都要有SD卡的支持,因为它产生的数据文件将会存到SD卡上。对于手机需要插入SD卡,对于模拟器要在建立/启动模拟器的时候加入SD卡的支持就可以了。

需要TraceView起作用,需要在对code进行修改。具体修改内容如下:

只要在打算调试的开始位置和结束位置加上相应的函数就可以,至于调试的起始位置的选择需要根据具体情况而定。

通过命令traceview *.trace对数据文件进行分析。

打开的数据文件如下:

看到界面是不是晕了啊!:原来:

在traceview的右半部统计字段中:

Exclusive: 同级函数本身运行的时间

Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间

Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。

Incl: inclusive时间占总时间的白分比

Excl: 执行占总时间的白分比。 
Calls+Recur Calls/Total: 调用和重复调用的次数 
Time/Call: 总的时间。(ms)

Incl Cpu Time% : 函数本身运行的cpu时间占总时间的百分比

Incl Cpu Time     : 函数本身运行的cpu时间

Excl Cpu Time% : 函数本身运行的cpu时间 + 函数调用了进程的cpu时间 占总时间的    百分比

Excl Cpu Time    : 函数本身运行的cpu时间 + 函数调用了进程的cpu时间

Incl Real Time% :函数本身运行的real时间占总时间的百分比

Incl Real Time   :函数本身运行的real时间

Excl Real Time%:函数本身运行的cpu时间 + 函数调用了进程的real时间 占总时间的    百分比

Excl Real Time    :函数本身运行的cpu时间 + 函数调用了进程的cpu时间

Calls + RecurCall/Total:函数总的调用次数

Cpu Time/Call      :总的Cpu时间与总的调用次数之比

Real Time/Call     :总的Real时间与总的调用次数之比

转自:http://blog.163.com/zhou_411424/blog/static/197362156201381264158793/

TraceView简单使用方法的更多相关文章

  1. MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

    首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...

  2. mfc显示静态图片最简单的方法

    一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...

  3. ECshop设置301最快捷最简单的方法

    ECshop设置301最快捷最简单的方法 在 init.php中加入以下代码 if (strtolower($_SERVER['SERVER_NAME'])!='www.fz1688.com') { ...

  4. git 的简单使用方法

    git 的简单使用方法1. 服务器 安装完成2. ssh 中的账号创建完成3. 创建 ssh 账号,会在 ssh 的安装目录下的home 目录里面,多了用户家目录4. 进入该目录 ,创建一个新的文件夹 ...

  5. JavaScript,一个超级简单的方法判断浏览器的内核前缀

    先说明,此处的方法是说超级简单的方法,不是指代码超级少,而是用非常简单的知识点,只要懂得怎么写JavaScript的行内样式就可以判断. 大家应该还记得JavaScript行内样式怎么写吧?(看来我是 ...

  6. NET MVC1项目升级到MVC2最简单的方法

    NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照 ...

  7. js 获取当天23点59分59秒 时间戳 (最简单的方法)

    js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...

  8. [ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径

    转自:http://www.cnblogs.com/dudu/p/formsauthentication-returnurl-absoluteuri.html [ASP.NET]更简单的方法:Form ...

  9. ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]

    准备工作: 在vs工具栏中找到NuGet   下载DotNetZip   现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...

随机推荐

  1. 关于 table-layout 属性

    我们经常会使用table,并且去手动的设置它的宽度,比如: <table> <tr> <td class="left">...</td&g ...

  2. 如何在IIS 中配置应用程序(Convert to Application)?

    1.打开IIS 2.选择待操作的虚拟目录 3.鼠标右键,点击"Convert to Application” 4.点击connect as 5.选中Specific user,并点击Set ...

  3. Promise原理 && 简单实现

    Promise原理 参考https://github.com/chunpu/promise/blob/master/promise.js 个人认为原博的实现有点问题 在next函数的实现上, 会导致无 ...

  4. SQL Server 移动master 数据库

    第一步: 告诉SQL Server 下次启动时master数据库的文件在哪里!我想们一定想到了(这样做是不对的,它对master不起作用,第二步开始正确的做法) alter database mast ...

  5. Oracle EBS-SQL (WIP-12):总装车间任务查询.sql

    select         WT.WIP_ENTITY_NAME                                                                任务名 ...

  6. ubuntu下C编程,编译基础( 转)

    buntu下C编程,编译基础     C 编程中相关文件后缀 .a 静态库 (archive) .c C源代码(需要编译预处理) .h C源代码头文件 .i C源代码(不需编译预处理) .o 对象文件 ...

  7. 各种HelloWorld

    http://blog.csdn.net/whxaing2011/article/details/20736759 ES总结: http://www.cnblogs.com/sunxucool/p/3 ...

  8. C语言入门(18)——数组与字符串

    用来存放字符量的数组称为字符数组.字符串可以看作一个数组,它的元素是字符型的. 字符数组的定义 形式与前面介绍的数值数组相同.例如: char c[10]; 由于字符型和整型通用,也可以定义为int ...

  9. 简单RTP发送类c++实现

    我之前编译了jrtplib 3.9.1,并且在项目中使用,结果发现在用这个库时,程序体积有增加了300多K,感觉实在是有点笨重,我无法就是用来发送rtp包而已.想想还是自己重新实现一个简单的类用用拉倒 ...

  10. 将Linux下编译的warning警告信息输出到文件中[整理笔记]

    Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入  stdin = standar ...