【Android】开发优化之——调优工具:TrackView,Method Profiling
Android SDK自带的tool TrackView 位于 sdk的tools文件夹下。使用方法为:进入到tools下,执行
traceview e:\loginActivityTracing.trace
就可以。那trace文件怎么生成的呢。
有两种方式生成
1、使用代码生成,想调哪调哪。
仅仅须要在须要调用的地方调用
Debug.startMethodTracing("loginActivityTracing");
和结束调用的地方调用
Debug.stopMethodTracing();
就会在sd卡的根文件夹生成loginActivityTracing.trace文件。
2、没有代码呢,能够使用DDMS来生成。
这是開始。然后同一个button再点一次就生成.trace文件并打开了。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmNseTIwMTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
运行之后能够看到这样一个图片:
TraceView界面信息介绍
TraceView界面包含时间面板和方法面板
(1) 时间面板(Timeline Panel)
时间面板展示了每一个线程的运行情况,当中的[1]main即为ui主线程。
移动到某个位置能够查看该点相应的方法的运行信息,点击方法面板则会选中相应的方法。
能够左键按住不放选中区域放大局部精细查看。不同方法用不同颜色标注
(2) 方法面板(Profile Panel)
方法面板展示了全部方法的运行情况。点击某个方法能够查看在相应线程上的运行时间区域,并会显示其父方法及子方法。
每一个方法包含例如以下信息列,可点击某列进行排序,从而确定产生性能问题的函数:
Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call
全部的Time都是以毫秒计算。
每列详细含义及作用例如以下:
a. Incl表示将全部子函数耗时也计算在内,Excl则表示不包含子函数的调用时间。对照能够确定耗时操作发生是自身还是子函数中。
b. Cpu Time表示占用cpu运行的时间,Real Time包含Cpu Time以及等待、切换的时间等,所以一般都大于Cpu Time。对照能够推断耗时操作是否在cpu运行段内。
c. 上面四个指标相应的%表示函数在总时间的占比。方便查看某个函数的时间占比。
d. Calls+RecurCalls/Total表示被外部调用次数+递归次数/总次数。能够查看调用次数是否符合自己预期。
e. Cpu Time/Call, Real Time/Call表示总的Cpu Time及Real Time与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每一个函数的性能。
最新文章
- 学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位
- 关于js中的this
- 微信小程序开发工具测评
- php include require
- spi 子系统
- Identity标识列
- 发掘ListBox的潜力(三):显示即时提示(Tips)
- 如何高效的编写Verilog HDL——进阶版
- Attrib +s +a +h +r 隐藏文件原理与破解
- Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript
- 如何彻底禁止win10易升更新(转)
- Alpha冲刺! Day4 - 磨刀
- 多个Activity和Intent
- (转)Memcache内存分配策略
- Element ui tree结合Vue使用遇到的一些问题(一)
- mongdb查询操作
- CentOS 7开机不执行/etc/rc.local的解决方法
- IDEA远程debug的使用
- 【Socket】linux高性能网络服务程序
- u3d加载加密和未加密