您的位置:首页 > 移动开发 > Android开发

Android 中性能优化工具之TraceView使用总结

2016-10-08 15:39 489 查看

概述

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

用法

TraceView有两种使用方法:

1:通过Android SDK 中Debug类来追踪代码的执行性能,如下:

// 在自己想要开始调试的地方start

Debug.startMethodTracing(“rongzitong.trace”);

// 在关键代码结束的地方stop

Debug.stopMethodTracing();

此种方式,是通过源码中调用,必须要知道源码才可使用。这两个函数运行过程中将采集运行时间内该应用所有线程(注意,只能是 Java 线程)的函数执行情况,并将采集数据保存到 /mnt/sdcard/ 下的一个文件中。开发者然后需要利用 SDK 中的 TraceView 工具来分析这些数据。

2:通过Andorid 自带的DDMS来调用,如下:

DDMS 中 TraceView 使用示意图如下,调试人员可以通过选择 Devices 中的应用后,点击



按钮 Start Method Profiling(开启方法分析)和点击



Stop Method Profiling(停止方法分析)



分析trace文件

上述方法后,会得到记录的trace文件,使用DDMS打开,如下:



traceView界面比较复杂,其UI划分为上下两个面板,上面为TimeLine(时间线面板),下面为Profile

Panel (分析面板)。

时间线面板又分为左右两个pane:

● 左边 Pane 显示的是测试数据中所采集的线程信息。由图可知,本次测试数据采集了 main 线程,传感器线程和其它系统辅助线程的信息。

● 右边 Pane 所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。由图可知,main 线程对应行的内容非常丰富,而其他线程在这段时间内干得工作则要少得多。

另外,开发者可以在时间线 Pane 中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。

下半部分,Profile Panel (分析面板)为traceView的核心界面,主要展示了某个线程中各个函数调用的情况,包括CPU使用时间,调用次数等。而这些信息正是查找 hotspot 的关键依据,所以对于开发者来说一定要了解Profile Panel中各列的含义。



了解完 TraceView 的 UI 后,现在介绍如何利用 TraceView 来查找 hotspot。一般而言,hotspot 包括两种类型的函数:

● 一类是调用次数不多,但每次调用却需要花费很长时间的函数。

● 一类是那些自身占用时间不长,但调用却非常频繁的函数。

通过以上的列名所代表的函数,我们可以分析出类中方法执行时所消耗的CPU,进而对其进行优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 性能优化