日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android -- 性能优化】启动速度分析工具 — TraceView

發布時間:2024/8/1 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android -- 性能优化】启动速度分析工具 — TraceView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不斷學習,做更好的自己!💪

視頻號CSDN簡書
歡迎打開微信,關注我的視頻號:程序員朵朵點我點我

一、簡介

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

二、官方文檔

參考:TraceView 使用文檔

三、使用

1. 通過 Android studio 自帶的 traceview 查看

通過 Android studio 打開 Android profiler 點擊其中的 CPU就會有以下的界面:

如上圖所示,CPU Profiler的視圖包括以下內容:
①App timeline:顯示CPU在執行過程中的時間軸。
②線程 timeline:顯示線程列表以及每個線程在某個時間段占用的CPU的資源情況。
③CPU timeline:列出CPU在App運行過程中CPU使用情況。
④Method Trace:在指定線程中,執行的方法棧,橫行表示執行的時間軸,縱向表示方法執行的調用軸。

使用步驟

  • 打開CPU Profiler界面
  • 點擊下方的紅色圓點,開始記錄(Record)堆棧(此時按鈕變灰色),記錄一段時間段后,再點擊下停止記錄(此時按鈕變紅色)
  • 在②區域選擇你用分析的線程
  • 在③區域中選擇要分析的CPU片段(只能有記錄的CPU片段)
  • 查看④區域,就會有一系列的執行方法隊列顯示出來,通過橫向查看可以看出某個方法的執行時間(橫向時間越長,執行的時間越長),通過縱向表示方法的調用關系。

技術說明
②區域中,線程占用CPU資源,會有不同顏色標記:

  • 綠色: 線程處于活動狀態或準備好使用CPU。也就是說,它處于”運行”或”可運行”狀態。
  • 黃色: 線程處于活動狀態,但是在完成其工作之前,它正在等待I / O操作(如文件或網絡I / O)。
  • 灰色: 線程正在睡眠,不會消耗任何CPU時間,當線程需要訪問尚未可用的資源時,有時會發生這種情況。要么線程進入自愿性睡眠,要么內核使線程休眠,直到所需的資源可用。

④區域中,不同的方法也會顏色也有所不同:

  • 橙色:系統方法
  • 藍色:第三方API(包括java語言的api)
  • 綠色:App自身方法

2. 通過 Android SDK 自帶的 Debug

  • 在開始記錄的點寫上代碼 Debug.startMethodTracing("tracePath") ;
  • 在終止記錄的點寫上代碼 Debug.stopMethodTracing() ;
  • 通過 adb pull /mnt/sdcard/tracePath.trace .將 trace 導出指定的文件夾中
  • 通過 Android studio 打開 trace 文件,界面同 CPU Profiler 差不多。

    優點
    能清晰分析指定業務、功能塊的方法執行情況(代碼控制)。

3. 通過 DDMS 中的 traceview 查看

前期準備工作(以windows系統為基準)
1、下載Android SDK,下載地址就各顯神通了。
2、解壓或者安裝Android SDK。
3、解壓后的目錄下的{sdk.dir}\tools配置到Path環境中。

使用說明

  • 打開window命令指示符,即cmd命令

  • 在命令行中輸入monitor或者ddms(區分版本),打開界面

  • 如圖點擊紅色圈圈按鈕開始記錄,再次點擊后終止記錄且彈出以下界面

    ①線程timeLine:線程在執行過程消耗CPU/時間
    ②執行TimeLine: 時間軸
    ③方法詳細信息軸:方法以及其調用方法的執行/消耗CPU時間

  • 查看main線程,查看執行時間長的時間段(②區域中同一個顏色起止時間)并點擊他,在③區域中會彈出對應的方法棧信息,你就會發現有個Thread.sleep方法阻塞的main線程。

技術說明

  • Incl Cpu Time:方法在CPU中執行所有時間(包含其調用的方法所消耗的時間)
  • Excl Cpu Time: 方法在CPU中執行的時間(不包含其調用的方法所消耗的時間)
  • Incl Real Time:方法運行消耗的所有時間(包含子方法)
  • Excl Real Time:方法運行消耗的時間(不包含子方法)
  • Calls + Recur Calls/Total :方法調用、遞歸次數(重要指標,防止死循環)
  • Cpu Time/Call :該方法平均占用 CPU 的時間(重要指標,可以看出單個方法占用CPU的平均時間,但是要防止在個別調用處出現長時間占用,然后被平均了)
  • Real Time/Call:平均執行時間,包括切換、阻塞的時間(重要指標,可以看出單個方法執行的平均時間值,但是要防止在個別調用處出現長時間調用,然后被平均了)

總結

以上是生活随笔為你收集整理的【Android -- 性能优化】启动速度分析工具 — TraceView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。