亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 中怎么使用TraceView性能分析工具

發布時間:2021-06-26 14:38:01 來源:億速云 閱讀:1093 作者:Leah 欄目:大數據

Android 中怎么使用TraceView性能分析工具 ,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

TraceView 是什么

TraceView 是 Android SDK 內置的一個工具,它可以加載 trace 文件,用圖形的形式展示代碼的執行時間、次數及調用棧,便于我們分析。

 

生成 trace 文件

trace 文件是 log 信息文件的一種,可以通過代碼,Android Studio,或者 DDMS 生成。

 

使用代碼生成 trace 文件

在想要記錄的地方調用 Debug.startMethodTracing("sample"),參數指定 trace 文件的名稱。

在結束記錄的地方調用 Debug.stopMethodTracing(),文件會被保存到 /sdcard/Android/data/packageName/files 文件夾下。

Debug.startMethodTracing("sample"); // 開始 trace
...
Debug.stopMethodTracing();  // 結束 trace
 

可以使用 adb 命令導出 trace 文件,使用 Android Studio Profiler 或者 DDMS 打開。

 

使用 Android Studio 生成 trace 文件

點擊工具欄中的 Profiler(Android Studio 版本是 3.4.2), 點擊 CPU 時間軸上的任意位置以打開 CPU Profiler。

Android 中怎么使用TraceView性能分析工具

1.  事件時間軸:顯示應用中的 Activity 在其生命周期內不斷轉換而經歷各種不同狀態的過程,并指示用戶與設備的交互,包括屏幕旋轉事件。

2. CPU 時間軸 : 顯示應用的實時 CPU 使用率以及應用當前使用的線程總數。通過沿時間線的水平軸移動鼠標,還可以檢查歷史 CPU 使用率數據。

3. 線程活動時間軸:應用進程的所有線程。不同顏色對應的含義:

  • 綠色:表示線程處于活動狀態或準備使用 CPU。即,它正在“運行中”或處于“可運行”狀態。

  • 黃色:表示線程處于活動狀態,但它正在等待一個 I/O 操作(如磁盤或網絡 I/O),然后才能完成它的工作。

  • 灰色:表示線程正在休眠且沒有消耗任何 CPU 時間。當線程需要訪問尚不可用的資源時偶爾會發生這種情況。線程進入自主休眠或內核將此線程置于休眠狀態,直到所需的資源可用。

要開始記錄跟蹤數據,點擊 CPU Profiler 頂部的下拉框選擇適當的記錄配置:

  • 對 Java 方法采樣:在應用的 Java 代碼執行期間,頻繁捕獲應用的調用堆棧。分析器會比較捕獲的數據集,以推導與應用的 Java 代碼執行有關的時間和資源使用信息。

  • 跟蹤 Java 方法 :在運行時檢測應用,以在每個方法調用開始和結束時記錄一個時間戳。系統會收集并比較這些時間戳,以生成方法跟蹤數據,包括時間信息和 CPU 使用率。

  • 對 C/C++ 函數采樣:捕獲應用的原生線程的采樣跟蹤數據。


Android 中怎么使用TraceView性能分析工具  

選擇配置后,點擊 Record 進行跟蹤,交互完成后點擊 Stop 結束數據跟蹤。分析器會分析 trace 數據,如下圖所示。

Android 中怎么使用TraceView性能分析工具

1. 選擇時間范圍:確定要在跟蹤窗格中檢查所記錄時間范圍的哪一部分。當首次記錄函數跟蹤時,CPU Profiler 將在 CPU 時間線中自動選擇完整長度。如果想僅檢查所記錄時間范圍一小部分的函數跟蹤數據,可以點擊并拖動突出顯示的區域邊緣以修改其長度。

2. 時間戳:用于表示所記錄函數跟蹤的開始和結束時間(相對于分析器從設備開始收集 CPU 使用率信息的時間)。可以點擊時間戳以自動選擇完整記錄。

3. 跟蹤窗格:用于顯示所選的時間范圍和線程的函數跟蹤數據。

4. 跟蹤數據窗格標簽:通過Call Chart(調用圖表)、Flame Chart(火焰圖)、 Top Down 樹或 Bottom Up 樹的形式顯示函數跟蹤。

  • Call Chart : 水平軸表示函數調用(或調用方)的時間,并沿垂直軸顯示其被調用者。對系統 API 的函數調用顯示為橙色,對應用自有函數的調用顯示為綠色,對第三方 API(包括 Java 語言 API)的函數調用顯示為藍色。

  • Flame Chart: 一個倒置的調用圖表,其中水平軸不再代表時間線,它表示每個函數相對的執行時間。

  • Top Down:顯示一個函數調用列表,在該列表中展開函數節點會顯示函數的被調用方。

  • Bottom Up:顯示一個函數調用列表,在該列表中展開函數節點將顯示函數的調用方。

5. 時間參考菜單 :確定如何測量每個函數調用的時間信息:

  • Wall clock time:實際經過的時間。

  • Thread time:實際經過的時間減去線程沒有消耗 CPU 資源的時間。

 

使用 DDMS 生成 trace 文件

DDMS 即 Dalvik Debug Monitor Server ,是 Android 調試監控工具,它為我們提供了截圖,查看 log,查看視圖層級,查看內存使用等功能。

Android Studio 3.0 后可在 Android SDK 的 tools 目錄,找到 monitor.bat,使用命令行啟動它,就能打開 DDMS。

DDMS 界面點擊 Start Method Profiling 按鈕,開始記錄 trace,同一個按鈕停止 trace。DDMS 會自動啟用 TraceView 加載 trace 文件,如下圖:

Android 中怎么使用TraceView性能分析工具  

圖中上半部分展示了不同線程的執行時間,其中不同的顏色代表不同的方法,同一顏色越長,說明執行時間越長,空白表示這個時間段內沒有執行內容。

下半部分展示了不同方法的執行時間信息。各個指標的含義:

  • Incl Cpu Time:方法占用的 CPU 時間(包括調用子函數所消耗的時間)。

  • Excl Cpu Time:方法自身占用的 CPU 時間(不包括調用其他方法所消耗的時間)。

  • Incl Real Time:方法運行的真實時間(包括調用子函數所消耗的時間)。

  • Excl Real Time:方法自身運行的真實時間(不包括調用其他方法所消耗的時間)。

  • Calls+RecurCalls/Total:方法被調用的次數+重復調用的次數。

  • Cpu Time/Call:方法調用 CPU 時間與調用次數的比,相當于方法平均執行時間。

  • Real Time/Call:同 Cpu Time/Call 類似,只不過統計單位換成了真實時間。

在分析耗時的時候一般有兩種情況:

  • 調用次數不多。但是,本身就非常耗時。

  • 本身不是很耗時。但是,調用非常頻繁。

第一種情況,可以使用 Cpu Time 來查看它的耗時情況。

第二種情況,可以使用 Calls+RecurCalls/Total 來查看它的調用情況。


關于Android 中怎么使用TraceView性能分析工具 問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通江县| 慈利县| 邵阳市| 宜州市| 滁州市| 梁河县| 渭源县| 罗江县| 武义县| 兴安盟| 米林县| 娄底市| 西乌珠穆沁旗| 祥云县| 抚顺市| 喀什市| 荆州市| 安泽县| 田东县| 塔城市| 南城县| 平塘县| 花莲市| 汽车| 鲜城| 青海省| 扎鲁特旗| 龙海市| 舞钢市| 高青县| 闽侯县| 永吉县| 长兴县| 鱼台县| 岗巴县| 广宁县| 盐边县| 原阳县| 西城区| 剑河县| 寿阳县|