Android Eclipse:Traceview,我只是不明白

时间:2011-06-25 09:30:53

标签: android eclipse profiling

我只是没有得到traceview输出的各种元素,我找不到教程。有人可以参考下图解释以下内容:

enter image description here

  1. 条形的宽度对应于函数所用的时间。高度对应的是什么?
  2. Inclusive和Exclusive之间的具体区别是什么。我认为包容性包括所有儿童功能的召唤?
  3. 这是真的:(每次通话时间的呼叫次数)总和=程序运行的时间(异步任务怎么样?)
  4. 在主线程上调试减速时,是否可以忽略异步任务?
  5. Excl%中所有百分比的总和是否应该等于100%?
  6. 有空隙时会发生什么(黑色中间是白色)?这是当其他android进程正在运行时,或者只是你自己的异步任务(看起来一个中的间隙与另一个中的填充部分对齐,如果那样的情况那么将密集型任务移动到AsyncTask中有任何意义)?

4 个答案:

答案 0 :(得分:17)

(我会在@ ron的答案中加上这个评论,但我的声誉仍然不高,我可以发表评论;))。

自2011年7月起,由于Jeff Brown的代码更改,您实际上可以获得traceview和VMDebug,以便为您提供挂钟时间和CPU使用时间。我担心必要的权限需要root设备。这也导致跟踪视图窗口略微不同于上面的tjb。

http://git.insignal.co.kr/?p=mirror/aosp/platform/dalvik.git;a=commitdiff;h=9f640af99bebc6e96f6e1e9903557e2c8f567483

TLDR; adb shell setprop dalvik.vm.extra-opts -Xprofile:dualclock并重新启动您的设备。

HRM,因为我在技术上应该帮助回答这个问题:

  1. 我对酒吧高度的理解是它与父功能有关。假设a()调用b()。然后a()正在运行,而b()也在运行。当b()运行时,traceview将显示b的颜色;但是当a正在运行时(即不包括时间),它将绘制一个颜色,并且它将绘制略高于b的条形的条形图。至少,这绝对是你放大时的工作方式;如果你点击相应较高栏的功能,它会将括号放在靠近它的小栏下方,表明父母负责所有这些;并且父母总是显示为较高的栏。

  2. 是的:)。包含是执行函数所花费的时间或该函数调用的任何东西;独家是'不包括被叫函数',只是在函数中花费的时间(或切换到/退出)。

  3. 仅适用于我认为你所暗示的顶层;甚至那时看@ ron的答案 - 这是cpu使用时间,而不是挂钟时间。 AsyncTasks在主线程中运行,因此将被包含在顶层故障中的某处。处理程序相同

  4. 由Eric回答

  5. 不,因为向上/向下舍入(即1.87%显示为1.9%);但“独家”中的条目总和应加起来在右上角显示的总时间,这与为您的问题计算的数字相同(3)

  6. 由Eric回答

答案 1 :(得分:10)

我无法回答你的所有问题,但我可以说......

for#4 no,你正在运行一个核心处理器(或至少模拟一个),因此他们自己的线程上的异步任务必须中断主线程才能获得处理时间。任何时候另一个线程执行将在主线程上“减速”,所以你应该看着它。

对于#6,您在主线程执行跟踪中看到的那些差距与您的asynctask获取处理器时间的时间完全相关。同样,单核,一次只能做1个线程。在这个时间片中,它看起来不像任何其他进程有任何处理器时间,但这些线程仍然在后台休眠。由于这是(可能)一个模拟器,这很常见。在实时手机上你会看到更多:)

我也相当确定#1线程执行中每个尖峰的高度是%处理器利用率。例如,主线程的“黑色”区域是系统空闲的。编辑:好的,我现在肯定。就是这样。所以在你的主线程中,那个粉红色的区域是100%处理器利用率。

答案 2 :(得分:1)

关于traceview图的其他重要技术诀窍(如mentioned here):traceview显示的时间不是真实的挂钟时间,而是使用CPU时间。

例如,通过减小FPS,跟踪视图的形状可能不会改变,因为它不包括空闲占空比。因此,在测量性能时,还建议运行应用程序一段固定的时间(10秒,60秒等),并检查100%包含呼叫所用的时间是否比以前低。

答案 3 :(得分:0)

谷歌刚刚在Udacity上发布了关于Android性能的精彩课程。有this module that provides a walkthrough of Traceview,以及视频模块下面的链接到他们的课程指南,其中深入介绍了Traceview的使用。查看这些内容将回答您的大部分问题。我强烈建议你看看它!

相关问题