Self Time在Android systrace中代表什么?

问题描述

在选择android systrace中的任何切片时,我看到的是self time的值。自我时间是什么意思?

解决方法

enter image description here 对于自底向上树(顶部节点)顶部的方法或功能

表示方法或函数花费在执行其自己的代码而不是其被调用者身上的总时间。与自顶向下的树相比,此计时信息表示在记录期间对该方法或函数的所有调用的总和。

对于呼叫者(子节点)

代表被呼叫者呼叫时被呼叫者的总自我时间 呼叫者。以图9中的自底向上树为例,自我 方法B的时间等于每个方法自身时间的总和 被B调用时执行方法C。

其他资源:https://developer.android.com/studio/profile/cpu-profiler

,

除了我自己miqdad的答案外,您还可以查看Android Dev Summit '19上的演讲:https://youtu.be/v4kCRZ_O4Lc,该演讲详细介绍了自己时间,儿童时间和总时间的计算。

对于systrace,尽管它显示跟踪事件而不是调用堆栈,但是它们以类似于调用堆栈的树的形式组织。因此,自我时间的概念仍然适用:self_time = total_time - sum(children_total_time)