天猫Android性能优化1—AndroidStudio内置的Traceview视图

Traceview是分析Android性能不可或缺的利器。目前一般是用DDMS或者ADT里面的traceview工具来查看的。哪怕是AndroidStudio官网也是如此推荐。
一个偶然的机会,发现AndroidStudio本身可以查看Traceview文件,而且更直观。
screenshot
它分成三部分:顶部工具栏,中间的“Flamechart”显示执行过程及调用堆栈,底部的表格显示该线程中各个函数的执行时间与调用次数。

顶部工具栏

screenshot

  1. Thread: 选择你要查看哪个线程的执行情况,默认是主线程的。
  2. x-axis: Wall Clock Time就是Real Time,该函数开始执行和结束执行之间的时间差。Thread Time就是CPU Time,真实消耗CPU的时间。
  3. Color by inclusive time: 在中间的Flamechart中,默认是根据exclusive time着色的。如果根据inclusive time着色,函数执行时间越长,颜色越深,所以顶层的函数颜色是最深的。
  4. Zoom fit:缩放用的,用鼠标滚轮也能实现。
  5. Find:查找某个函数。

中间的Flamechart

screenshot
横向表示时间线上函数的执行情况,长度越长,表示函数的执行时间越长。纵向表示调用堆栈。
以上图为例。第一行只有一个main()函数,它是函数调用堆栈的root,我们的trace一直在main()函数的执行时间内。第二行比较明显的有TMHomePageView()和TMHomePageActivity.init()函数,表示在我们trace期间,main()调用了这两个函数消耗了大部分时间。其中以TMHomePageActivity.init()最为耗时。第三行则显示了TMHomePageView()和TMHomePageActivity.init()调用的函数,以此类推。

底部表格

screenshot

  1. Name: 该列表示该线程中所执行的函数。
  2. Invocation Count: 该函数的总调用次数,包括递归调用。
  3. Inclusive Time:即Real Time,函数开始执行到执行结束的时间差。
  4. Exclusive Time: 即CPU Time, 函数正在消耗CPU的时间。

总结

该视图的优点是直观,容易上手。如果你只关注某个线程上的函数执行情况,用该工具是极好的。

附录

Traceview in Android Studio官方文档:http://tools.android.com/tips/traceview

原文:大专栏  天猫Android性能优化1—AndroidStudio内置的Traceview视图


猜你喜欢

转载自www.cnblogs.com/dajunjun/p/11643690.html