Android 性能分析工具之 TraceView 使用说明

标签: android 性能分析 工具 | 发表时间:2016-03-31 19:30 | 作者:Jo__yang
出处:http://blog.csdn.net

TraceView 是 Android 平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到 method。


TraceView 简介

TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot。TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具。二者的用法如下:

  • 开发者在一些关键代码段开始前调用 Android SDK 中 Debug 类的 startMethodTracing 函数,并在关键代码段结束前调用 stopMethodTracing 函数。这两个函数运行过程中将采集运行时间内该应用所有线程(注意,只能是 Java 线程)的函数执行情况,并将采集数据保存到 /mnt/sdcard/ 下的一个文件中。开发者然后需要利用 SDK 中的 TraceView 工具来分析这些数据。
  • 借助 Android SDK 中的 DDMS 工具。DDMS 可采集系统中某个正在运行的进程的函数调用信息。对开发者而言,此方法适用于没有目标应用源代码的情况。

DDMS 中 TraceView 使用示意图如下,调试人员可以通过选择 Devices 中的应用后点击   按钮 Start Method Profiling(开启方法分析)和点击   Stop Method Profiling(停止方法分析)

开启方法分析后对应用的目标页面进行测试操作,测试完毕后停止方法分析,界面会跳转到 DDMS 的 trace 分析界面,如下图所示:

TraceView 界面比较复杂,其 UI 划分为上下两个面板,即 Timeline Panel(时间线面板)和 Profile Panel(分析面板)。上图中的上半部分为 Timeline Panel(时间线面板),Timeline Panel 又可细分为左右两个 Pane:

  • 左边 Pane 显示的是测试数据中所采集的线程信息。由图可知,本次测试数据采集了 main 线程,传感器线程和其它系统辅助线程的信息。
  • 右边 Pane 所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。由图可知,Thread-1412 线程对应行的的内容非常丰富,而其他线程在这段时间内干得工作则要少得多。
  • 另外,开发者可以在时间线 Pane 中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。

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

 

 

 

 

 

 

 

 

 

实战分析:

首先找到自己写的类,这里以我上图中自己写的AddGoodsMatchActivity为例,可以知道其onCreate方法公占用314.069ms,onCreate方法里的各个方法占用时间也很清楚。重点分析其setContentView方法,因为它占用266.874ms 占整个onCreate方法的82.5%,点击setContentView方法

再点击SetContentView


再点击inflate

由此我们可以看到我们自己的方法调用的时间,调用的次数,从而分析问题所在

作者:Jo__yang 发表于2016/3/31 11:30:21 原文链接
阅读:3 评论:0 查看评论

相关 [android 性能分析 工具] 推荐:

正确使用Android性能分析工具——TraceView

- - 博客 - 伯乐在线
最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方. 因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界面下方数据指标的值代表什么意思…以前我用 StopWatch类来分析性能,现在觉得弱爆了…不过有些地方 StopWatch工具类还是很简单好用的~.

Android 性能分析工具之 TraceView 使用说明

- - CSDN博客推荐文章
TraceView 是 Android 平台配备一个很好的性能分析的工具. 它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到 method. TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot. TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具.

Android应用性能 分析

- - CSDN博客推荐文章
  其实主要是内存方面,内存管理是个永恒的话题. 1.从工具DDMS中,在Sysinfo的tab栏里面有一个Memory usage的选项,通过USB连接Android设备以后很容易抓到图. 在图中可以看到系统随时可以用的内存是Free和Buffers两项,因为我抓图的系统只有128M的内存,所以看上去这部分可用内存已经很少了.

Linux 和 Android 系统性能分析

- - CSDN博客综合推荐文章
作为一名Linux 或 Android 平台的系统工程师,在开发系统新功能外,主要工作就是优化系统性能,使系统上以最优的状态运行,但是由于硬件问题、软件问题、网络环境等的复杂性和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题, 从系统入手,阐述由于系统软、硬件配置不当可能造成的性能问题,并且探讨检测系统故障和优化性能的一般方法和流程.

nmon免费性能分析工具

- - CSDN博客推荐文章
这个工具是IBM推出的用于性能分析的免费工具,支持AIX、Linux平台. nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:. 内核统计信息和运行队列信息. 磁盘 I/O 速度、传输和读/写比率. 网络 I/O 速度、传输和读/写比率. IBM HTTP Web 缓存.

Linux 性能分析工具 nmon for Linux

- - CSDN博客架构设计推荐文章
nmon 是 Nigel's performance Monitor for Linux on POWER, x86, x86_64, Mainframe & now ARM (Raspberry Pi) 的缩写,意思是 Nigel(nmon 的作者是 Nigel Griffiths) 的 Linux 性能检测器.

[译]Go性能分析工具工具和手段

- - 鸟窝
翻译自 Basics of benchmarking, profiling and tracing with Go,作者对Go性能分析的工具和手段做了一个很好的总结. 这篇文档提供了Go提供的测量性能和收集运行时信息的工具的概览. 它不是一个关于基准测试、性能分析和跟踪的详细教程. 所以这篇文档也可以看成是一篇备忘录.

perf学习-linux自带性能分析工具

- - ITeye博客
目前在做性能分析的事情,之前没怎么接触perf,找了几篇文章梳理了一下,按照问题的形式记录在这里. linux性能调优工具,32内核以上自带的工具,软件性能分析. 在2.6.31及后续版本的Linux内核里,安装perf非常的容易. 几乎能够处理所有与性能相关的事件. 指在处理器或者操作系统中发生,可能影响到程序性能的硬件事件或者软件事情.

php性能分析工具xhprof的安装使用

- - 操作系统 - ITeye博客
项目域名:http://www.ajia.com. 项目路径:/home/www/. cp -r xhprof_html xhprof_lib /home/www/  (复制xhprof_html、xhprof_lib这两个目录到“项目目录”下,此处目的是建立xhprof的数据分析目录,可将此目录配置成虚拟主机访问)  .

优秀的Android SSH工具

- 牛牛 - Solidot
Peter Jackson 写道 Secure Shell(SSH)是工作在应用层和传输层之上的网络安全协议,利用128位公钥加密接收和发送的信息. SSH能保证两个主机之间的通信不被中间人拦截. 作为一种安全保护协议,SSH常被用于安全数据通信和远程命令执行. 其它常用用途包括使用SSH文件传输协议或安全复制协议在机器之间建立安全隧道或传输文件.