每個方法前面都有一個數字,可能是全部方法按照Incl CPU Time 時間的排序序號(后面會講到)
點一個方法后可以看到有兩部分,一個是Parents,另一個是Children。
? Parent表示調用這個方法的方法,可以叫做父方法
? Children表示這個方法中調用的其他方法,可以叫做子方法
橫軸
橫軸上是很多指標,這些指標表示什么意思真的困擾了我很長一段時間。。。
能夠很衡量一個方法性能的指標應該只有時間了吧? 一個方法肯定就是執行時間越短約好咯~~
1. Incl Cpu Time
define inclusive : 全包括的
上圖中可以看到0(toplevel) 的Incl Cpu Time 占了100%的時間,這個不是說100%的時間都是它在執行,請看下面代碼:
public void top() {
a();
b();
c();
d();
}
Incl Cpu Time表示方法top執行的總時間,假如說方法top的執行時間為10ms,方法a執行了1ms,方法b執行了2ms,方法c執行了3ms,方法d執行 了4ms(這里是為了舉個栗子,實際情況中方法a、b、c、d的執行總時間肯定比方法top的執行總時間要小一點)。
而且調用方法top的方法的執行時間是100ms,那么:
Incl Cpu Time
top 10%
a 10%
b 20%
c 30%
d 40%
從上面圖中可以看到:
toplevel的 Incl Cpu Time 是1110.943,而io.bxbxbai.android.examples.activity.ExpandableLayoutMainActivity$SimpleAdapter.getItemView方法的Incl Cpu Time為12.859,說明后者的Incl Cpu Time % 約為1.2%
這個指標表示 這個方法以及這個方法的子方法(比如top方法中的a、b、c、d方法)一共執行的時間
2. Excl Cpu Time
理解了Incl Cpu Time以后就可以很好理解Excl Cpu Time了,還是上面top方法的栗子:
方法top 的 Incl Cpu Time 減去 方法a、b、c、d的Incl Cpu Time 的時間就是方法top的Excl Cpu Time 了