使用traceview+dmtracedump快速定位性能问题 | In Winter dynatrace 性能测试
传统的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的原始的排列方式是一样的。
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)
更多阅读
如何使用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拍摄的精彩视频短片,是我们想要收藏的关于岁月的回忆,那么,这些精美的照片和视频,怎么制作视频呢?这里教你使用数码大师,轻松的将照片和视频整合成精美的视频,实现照片和视频完美包装。视频相册是典