使用traceview+dmtracedump快速定位性能问题 | In Winter dynatrace 性能测试

今天和同事调试一个Gallery的动画性能问题。一上来还是老套路,上systrace。可是systrace并没有提供足够多的信息,只能看到从dispatchInputEvent()到最后的draw()花去了几百毫秒。于是改用traceview,意外地发现android sdk中自带了一个名叫dmtracedump的工具,配合traceview一起使用,功能强大且使用方便,可以帮助迅速地定位性能问题。

传统的traceview界面包括两个panel, timeline panel和profile panel。timeline 按照时间轴显示出所有的函数调用,profile panel按照函数花费的时间进行排列。



traceview本身提供了丰富的调试信息,包括各个函数的执行次数,时间,以及函数之间的调用关系。只是profile panel的排列方式比较单一,于是程序员经常需要在函数之间反复的跳转,比较,寻找导致程序性能低下的真正元凶。好在,Android SDK提供了dmtracedump的工具,从traceview中导出其他格式的报告。

生成HTML报告

dmtracedump可以将trace转换成html格式。首先在/tmp目录下找到traceview生成的trace文件,然后使用dmtracedump生成html报告

$> <path_to_android_sdk>/tools/dmtracedump -h /tmp/ddmsXXXXXX.trace > output.html

在html的report中,dmtracedump生成了4个表格,

Exclusive profile: 按照函数“自己”(去除被它调用的其他函数的执行时间)所执行的时间进行排列。

Inclusive profile: 这个和traceview中profile panel的原始的排列方式是一样的。

使用traceview+dmtracedump快速定位性能问题 | In Winter dynatrace 性能测试
Class profile: 按照类(的函数成员)执行时间进行排列。统计时间按Exclusive time计算

Method profile: 按照函数的执行时间排列,包括native的函数,统计时间按Exclusive time计算



完整html报告点击这里

在这个练习中,我们可以很快地发现BitmapFactory.nativeDecodeStream(在Exclusive profile中排在第一位)被不必要地多次执行,导致了在动画播放的前段造成卡顿。

生成调用关系图谱

除了HTML report,dmtracedump也支持生成函数调用关系的图谱。

$> <path_to_android_sdk>/tools/dmtracedump -g /tmp/output.png /tmp/ddmsXXXXXX.trace

如果在执行过程中遇到问题,可以尝试通过安装graphviz解决

$> sudo apt-get install graphviz

在生成的结果中,每个函数的表达方式为:

[inclusive_time_rank]function_name(total_inclusive_time, total_exclusive_time, execute_times)

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/57252.html

更多阅读

如何使用DOS命令快速清理磁盘 dos命令禁止磁盘访问

如何使用DOS命令快速清理磁盘——简介电脑会随着使用时间变长产生很多临时的文件,各种垃圾文件并且逐渐变慢。让电脑快速的跑起来,恢复快速运转需要不时的进行磁盘清理。今天和大家分享一个简单快速的一键清理磁盘的办法

如何使用PP助手快速备份SHSH pp助手5.0备份shsh

如何使用PP助手快速备份SHSH——简介 12月18日,苹果官方又发布了ios6.0.2升级固件,专门针对 iPhone5 和 iPad mini ,修复 Wi-Fi 连接问题。新固件的发布,苹果必然又会关闭前一固件版本SHSH,果粉们必须在苹果关闭之前,先做好备份SHSH的工作

U盾快速使用指南 itunes快速指南无响应

U盾快速使用指南一、PC平台兼容性1.1支持操作系统:Windows2000及以上各版本32位和64位Windows系统、Mac10.9及以上Mac系统。注:Mac系统暂不支持企业用户1.2 支持浏览器:IE6.0以上版本及各种以IE为内核的浏览器,safari、火狐(Firefo

电动车电池和充电器使用中的30个经典问题 电动车充电器维修

电动车电池和充电器使用中的30个经典问题(1)问:电动车充电该怎么充?电压多少算充好?(骑车人)  答:1.8A恒流,充电到43.2V,开始恒压。当电流下降到100mA~150mA时,转到40.5V恒压,同时表示电池充满电。多数情况应该是“不用就冲,每次都充满!”如果可

怎么制作视频——教你使用数码大师快速制作视频 数码大师制作

家庭随拍、旅游出行留下的照片,以及DC、DV拍摄的精彩视频短片,是我们想要收藏的关于岁月的回忆,那么,这些精美的照片和视频,怎么制作视频呢?这里教你使用数码大师,轻松的将照片和视频整合成精美的视频,实现照片和视频完美包装。视频相册是典

声明:《使用traceview+dmtracedump快速定位性能问题 | In Winter dynatrace 性能测试》为网友风不等人分享!如侵犯到您的合法权益请联系我们删除