Android 性能优化工具 Traceview和dmtracedump
2014-04-05 21:34
519 查看
一、DDMS和TraceView的区别?
DDMS是一个程序执行查看器,在里面可以看见线程和堆栈等信息,TraceView是程序性能分析器,可以看到那个view 绘制使用了多长时间 。
二、TraceView文件的生成
Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。第一种方式:使用代码
首先,必须在程序当中加入代码,以便生成trace文件,有了这个trace文件才可以将其转化为图形。
要添加的代码如下:
Java代码
Debug.startMethodTracing("yourActivityTrace");
Debug.stopMethodTracing();
Google Dev Guide当中说可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),但是在实际的测试时发现这种方式其实并不好用,因为通常情况下我们的activity的onDestroy()是由系统决定何时调用的,因此可能等了很长时间都不会得到这个trace文件。因此决定在onStop()中来调用Debug.stopMethodTracing()。这样当我们切换到其它activity或者点击home键的时候onStop()就会被调用,我们也就可以得到完整的trace
file。
trace文件保存到/sdcard/...当中。现在把这个文件copy到电脑上指定的目录,假设是C:/tracefile 目录下。
可以通过命令行来执行traceview,进入tools目录后,执行
traceview C:/tracefile/yourActivityTrace.trace
但是会提示如下的信息
新的adt 已经不支持使用 traceview 命令直接打开了 trace,相反更简单的是直接eclipse 直接就可以打开trace文件
file - openfile 即可
另外一种方式使用traceview 不用再写代码了,使用 Android Device Monitor 来
Lunch your app from eclipse in debugging mode.
Go to DDMS View
In devices window there is a small button called Start Method Profiling
Click it when you want ( you can combine it with break points to get accurate start/end)
when you’re done click Stop Method Profiling
A new window in DDMS will appear similer to traceview with the same output.
三、 TraceView工具的使用
有两方面用途:1 查看跟踪代码的执行时间,分析哪些是耗时操作
2 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系
获取方法的调用顺序
1. 在traceview中搜索响应的方法名不能使用大写字母
2. 搜索出的方法会自动展开,其中包含Parents 和 Children 两组信息
3. 点击Parents下的方法名,直接跳转到调用当前的方法处。Children相反
上面是时间片面板(Timeline panel),下面是分析面板(Profilepanel)
时间片面板(Timeline panel):描述当每个线程和方法启动和停止
分析面板(Profile panel):提供了内部方法调用的总结
分析面板中参数的意义
英语 | 中文 |
Incl | 调用方法占用时间百分比 |
Inclusive | 调用方法时间(ms)(包括了所有方法的调用) |
Excl | 执行方法占用时间百分比 |
Exclusive | 执行方法占用时间(ms)(不包括子方法的调用) |
Calls+Recur Calls/Total | 调用和重复调用的次数 |
Time/Call | 总的时间(ms) |
四、dmtracedump的使用
dmtracedump 会根据trace文件 生成函数调用关系图dmtracedump的使用方法:
dmtracedump [-ho]
[-s sortable]
[-d trace-base-name]
[-g outfile]
<trace-base-name>
参数 | 描述 |
-d <trace-base-name> | Trace 文件的名称 |
-g <outfile> | 需要输出的问题 |
-h | 使用HTML输出 |
-o | 存储跟踪文件,而不是分析文件 |
-t <percent> | 最低门槛,包括子节点图中(孩子接点的包容性的时间占母接点包容性的时间)。如果不使用此选项,默认阈值是20%。 |
dmtracedump -g aa.png calc.trace
但是我失败了,出现错误:
ERROR: unable to read 1829330 bytes from trace file
Cannot read trace.
查看了一下stackoverflow
Do you try to use '
dmtracedump' tool in the windows OS?
I think '
dmtracedump' tool can't handle big files.. in my
case.. Windows 7 32 bit.
Cmd> dmtracedump -g abc.png Large_Log.trace
ERROR: unable to read 8910087 bytes from trace file
Cannot read trace.
but, I succeeded to generate call graph image file in the ubuntu 64 bit OS.
the size of generated abc.png file is approximately 6 MB.
google group 上的回答
I generated another trace file in a linux box, and then
dmtracedump worked fine with that one.
Yes, I meet same problem in Window XP.
But It worked well in a linux box.
I still can't find how to solve this error.
好吧,回去用ubuntu试试
五、其他的性能优化工具(都没用过啊)
1、GProfile一款Linux下测试应用程序的性能的工具。它可以提供函数调用的关系、每个函数的执行时间以及每个函数调用的次数。
2、OProfile
一款可以测试Kernel、以及Android下C/C++代码的工具。功能很强大。
3、TraceView
Android SDK自带的一个性能测试工具。它可以测试Android中应用以及Framework层中代码的工具。
4、NEON
NEON是一个新兴的技术,它是基于SIMD(单指令多数据)的技术。它可以加速多媒体的处理,给用户更流畅的体验。
相关文章推荐
- Android性能优化工具dmtracedump
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎 .
- [Android]Android代码调试工具: Traceview和Dmtracedump
- Android程序调试工具TraceView和dmtracedump
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎 .
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎 .
- 【Android】SDK工具学习 - Traceview 和 dmtracedump
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android代码调试工具 traceview 和 dmtracedump的波折演绎
- Android 性能优化 二 TraceView工具的使用
- android的dmtracedump工具生成trace文件图片 'dot' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- Android 中性能优化工具之TraceView使用总结
- Android 性能优化 二 TraceView工具的使用
- (原创)Windows下使用android ADT工具dmtracedump.exe绘图
- Android性能优化工具之Traceview