gpt4 book ai didi

Android Eclipse : Traceview, 我只是不明白

转载 作者:IT王子 更新时间:2023-10-29 00:04:24 27 4
gpt4 key购买 nike

我只是不明白 traceview 的各种元素输出,我找不到教程。有人可以引用下图解释以下内容:

enter image description here

  1. 条形的宽度对应于函数所用的时间。高度对应什么?
  2. 包容性和独占性之间的具体区别是什么。我假设 inclusive 包括所有子函数的调用?
  3. 这是真的吗:(每次调用的时间乘以调用次数)的总和 = 程序运行的时间(异步任务呢?)
  4. 在主线程上调试减速时可以忽略异步任务吗?
  5. Excl% 中所有百分比的总和是否应该等于 100%?
  6. 如果出现间隙(黑色中间有白色),会发生什么情况?是当其他android进程正在运行时,还是只是您自己的异步任务(看起来一个中的间隙与另一个中的填充部分对齐,如果是这种情况,那么将密集任务移动到 AsyncTask 是否有任何意义)?

最佳答案

(我会将此作为评论添加到@ron 的回答中,但我的声誉仍然不够高,无法发表评论;))。

自 2011 年 7 月以来,由于 Jeff Brown 的代码更改,您实际上可以获取 traceview 和 VMDebug 来为您提供挂钟时间和 CPU 使用时间。但是,恐怕必要的权限需要 Root设备。这也导致 traceview 窗口与上面 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 正在运行时(即不包括时间),它将绘制 a 的颜色,并且它会绘制 a 的条略高于 b 的条。至少,这绝对是放大时的工作方式;如果您单击与较高栏相对应的功能,它将在其附近的小栏下方放置括号,表明 parent 负责所有这些;并且父级始终显示为较高的条形。

  2. 是的:)。包容性是执行函数或该函数调用的任何事物所花费的时间; Exclusive 是“不包括被调用函数”,只是在函数本身(或切换到/退出)中花费的时间。

  3. 仅适用于顶层,我认为您暗示了这一点;甚至看到@ron的答案 - 这是cpu使用时间,而不是挂钟时间。 AsyncTasks 在主线程中运行,因此将包含在顶层分割中的某个位置。处理程序也一样

  4. 埃里克回答

  5. 否,因为向上取整/向下取整(即 1.87% 将显示为 1.9%);但是“独家”中的条目总和应该是右上角显示的总时间,这与为您的问题计算的数字相同(3)

  6. 埃里克回答

关于Android Eclipse : Traceview, 我只是不明白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com