簡體   English   中英

Android開發者頁面:了解traceview profiling示例

[英]Android developer page: understanding traceview profiling example

我正在看這個頁面: 使用Traceview和dmtracedump進行分析

在“配置文件面板”下,它具有以下文本,引用文本下方的示例性能分析結果:

表中的最后一列顯示了對此方法的調用次數加上遞歸調用的次數。 最后一列顯示了對該方法的調用總數中的調用次數。 在這個視圖中,我們可以看到有14次調用LoadListener.nativeFinished(); 查看時間軸面板顯示其中一個電話花了很長時間。

我對此描述感到困惑。 首先,本引文中的前兩句似乎是指同一列。 那么最后一欄實際上包含了什么? 其次,我不明白“時間軸面板”的確切位置,我必須看到它“顯示其中一個電話花了不尋常的時間”。

能幫我理解一下這篇文章嗎?

首先,同一篇文章告訴我們:

父母被顯示有紫色背景和孩子有黃色背景

所以LoadListener.nativeFinished是父函數 ,它下面的所有縮進行都是節點或父調用的函數。

檔案面板

這是文章中的配置文件面板的剪輯:

配置文件面板的剪輯

表中的最后一列顯示了對此方法的調用次數加上遞歸調用的次數。

第一行(父)的最后一列表示對此函數進行的調用和遞歸調用的次數:14次迭代和0次遞歸調用,用加號( 14 + 14 )分隔。

我認為文章的作者不小心說了幾句話,結果下一行有點混亂:

最后一列顯示了對該方法的調用總數中的調用次數。

在父級下面的黃色背景子行中,最后一列實際上不表示Calls + Rec。 請注意符號的變化 - 使用分數與加號符號語法。 在LoadListener.tearDown的情況下,14/14表示LoadListener.tearDown由父功能14倍調用。 在此跟蹤中,LoadListener.tearDown函數總共調用了14次,因此LoadListener.nativeFinished是此跟蹤中唯一調用LoadListener.tearDown的函數。

讓我們看看另一行。 (子)函數View.invalidate的最后一列的值為2413/2853。 這並不意味着View.invalidate被迭代地調用2413次而遞歸調用2853次。 相反,它意味着父函數LoadListener.nativeFinished,調用View.invalidate 2413次。

現在看一下#6行,你會看到View.invalidate被迭代地調用2853次,遞歸調用0次。 因此,父函數LoadListener.nativeFinished是在此跟蹤中調用LoadListener.tearDown的唯一函數。

時間線小組

以下是文章中時間軸面板的剪輯:

時間線面板的剪輯

來自同一篇文章,

第一行下面的細線顯示所選方法的所有調用的范圍(進入退出)

注意細長的支撐狀粉紅色線條直接水平跨越主線程突出顯示部分的下方。 最左邊的粉色花括號很短; 這些代表對LoadListener.nativeFinished的13/14調用,它們相對較快地完成。 最后一個支架 - 最右邊的支架 - 比任何其他支架長得多。 這是對LoadListener.nativeFinished的調用“花了很長時間”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM