Android性能调优工具之 TraceView

从1月份Google发布的16个关于性能优化的系列视频起,这段时间在各大社区都有看到很多优秀的关于优化系列的文章。有分析了性能产生的原因、有分享如何优化我们的应用、有介绍有哪些工具可以帮助我们检测性能问题。

其中 在关于一些系统性能调优工具里有介绍到工具之一:TraceView

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

因为小吕之前确实没有使用过该工具、所以这两天也自己试玩了一把、将该工具的简单使用操作做个简单的图文介绍。也希望在以后的工作当中要重视该工具的使用、利用好该工具。

一、如何使用该工具 采集数据

1、第一种使用方式

① 在你需要调式的代码片段首尾分别添加代码

Debug.startMethodTracing("traceView");
Debug.stopMethodTracing();

如 我们想要对MainActivity的onCreate() 和 onDestory() 方法之间做跟踪,代码可如下:

public class MainActivity extends Activity {  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /*
         * 将在SD卡根目录生成数据性能采集文件 traceView.trace
         * 注意:
         *     1、一定要在有SD卡的调试手机或模拟器上使用
         *     2、添加SD卡访问读写权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
         */
        Debug.startMethodTracing("traceView");
    }  

    @Override
    protected void onStart() {
        super.onStart();
        Debug.stopMethodTracing();
    }  

} <span style="font-family: 'Comic Sans MS'; background-color: rgb(255, 255, 255);"> </span>

②、当程序运行过上面的代码之后 便会在你的手机或模拟器的SD卡根目录生成文件 traceView.trace, 如下图:

③、在正式使用traceview工具分析数据前,我们使用adb命令将SD卡根目录下的traceView.trace文件导出到我们的本地电脑中,adb命令如下:

如上命令 我将.trace文件导出在我的电脑C:\tmp下 如图:

④、在{sdk}/tools/目录下 找到我们的工具traceview.bat、双击运行他吧, 会有如下显示:

提示我们使用 Android Device Monitor<tools/monitor> 。

⑤、但是我们执行如下命令: traceview xxx.trace, 使用traceview去访问执行.trace文件

一伙出现效果如下:        

根据之前命令的提示:

这里我们也可以使用执行Android Device Monitor<tools/monitor>工具 出现如下界面

在该界面中 我们可以通过 file--> open file 打开之前导出的.trace文件,这时将会看到同样的效果:

到此 我们便完成了数据的采集与使用traceview工具将数据做了图形化展示

2、第二种使用方式

相对第一种方式 这种要简单很多

通过选择 Devices 中的应用后点击按钮 Start Method Profiling(开启方法分析)和点击 Stop Method Profiling(停止方法分析) 如图:

当停止采集时,DDMS会自动触发Traceview工具来浏览采集数据

二、如何使用该工具 分析数据

当看到图形化的trace数据后、我们要知道如何看懂上面的数据、以做出正确的分析、最后在分析中查找性能上的问题、最终从代码上解决问题。

这部分主要包括:

1、TraceView工具面板的掌握,分析面板每列待办的含义 如:Name、 Incl Cpu Time、 Excl Cpu Time、 Incl Real Time等。

2、如何去定位分析我们要监视的具体方法(通过TraceView底部的find来查找)。

3、如何去定位那些耗时(导致性能问题)的方法(筛选出方法耗时排行的时间 如:Incl Cpu Time列、Cpu Time/Call列)。

4、最后根据找出性能上有缺陷的具体方法、去做代码上的优化。

这里的内容远远超过上面关于 工具数据采集的使用介绍,小吕也刚好在网上有收集到两篇优秀的关于TraceView工具的使用介绍:

1、Android系统性能调优工具介绍:http://blog.csdn.net/innost/article/details/9008691

2、Android编程下的TraceView简介及其案例实战:http://www.cnblogs.com/sunzn/p/3192231.html

三、其他

关于Android的调优工具除了TraceView外、还有Overdraw,Systrace,StrictMode,Hierarchy Viewer等。

英文能力不错的就上Google官网吧:http://developer.android.com/tools/debugging/debugging-tracing.html

时间: 2024-10-10 07:41:37

Android性能调优工具之 TraceView的相关文章

【Java/Android性能优3】Android性能调优工具TraceView使用介绍

本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评:对系统进行大量有针对性的测试,以得到合适的测试数据. 分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck). 性能优化:对hotspot相关的代码进行优化. 由上述步骤可知,性能优化的目标对象是hotspot.如果找到的hotspot并非真正的热点,则性能优

Android性能调优篇之Hierarchy Viewer工具的使用

详细内容请查看我的简书地址:Android性能调优篇之Hierarchy Viewer工具的使用 或者我的个人博客地址:Android性能调优篇之Hierarchy Viewer工具的使用

Android系统性能调优工具介绍

经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优工具介绍 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是: 测评:对系统进行大量有针对性的测试,以得到合适的测试数据. 分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck). 性能优化:对hotspot相关的代码进行优化. 由上述步骤可知,性能优化的目标对象是hotspot.如果找到的hotspot并非真正的热点,则性能优化的结果必然是事倍

[转]Linux常用性能调优工具索引

From:http://www.frostsky.com/2013/03/linux-performance-analysis-tool?wpmp_switcher=desktop 前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到Linux常用性能调优工具, 见下图: 其中提到了的工具,大部分在我日常工具箱里或者在实践的案例里面使用过, 都有很高的价值,这里方便大家索引下: nicstat: 参见 这里 oprofi

Android性能调优篇之UI布局优化

详细内容请查看我的简书地址:Android性能调优篇之UI布局优化 或者我的个人博客地址:Android性能调优篇之UI布局优化

性能调优工具

[性能调优工具jps.jstack.jmap.jhat.jstat.hprof使用详解]http://my.oschina.net/feichexia/blog/196575 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些

java 性能调优工具

1.jstack 用法jstack [option] pid -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况 -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法) 找出进程内最耗费CPU的线程,可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid printf "%x\n" pid 得到pid的

Linux服务器常用性能调优工具

Linux服务器的性能往往受到CPU.内存.磁盘I/O.网络带宽等方面的影响,对于每个Linux后台服务器开发人员来说,掌握一些常用的性能调优工具是十分有必要的.下图几乎涵盖了一个系统的方方面面,图中的工具都可称得上是性能调优方面的“瑞士军刀”,短小精干.功能强大. 1.strace 在Linux中,进程不能直接访问硬件设备,当进程需要进行读取磁盘文件,接收网络数据等访问硬件设备 的操作时,必须由用户态模式切换至内核模式,通过系统调用访问硬件设备.strace可用来跟踪程序使用的底层系统调用,可

mysql性能调优工具之mytop

Mysql性能调优工具之mytop 的安装和使用 1.       mytop 的下载地址 http://yunpan.cn/cVG3uSs2Jtt9h  访问密码 7ef1 2.       首先安装mytop必要的组件 .   yum -y install perl-DBD-MySQL perl-DBIperl-TermReadKey 如果提示找不到安装包,可以先安装 Yum –y install  epel-release epel-release 这个可以使用到最新的yum源. 如果安装