Android 推出全新效能分析器,實用性與效能大升級

**Android Performance Analyzer (APA) 是 Android 新的 profiler 與 performance analysis 工具,主要用於整個 Android 生態系的效能分析**,特別偏向 **App/Game/Vulkan/GPU/系統層級 trace** 場景。

一般它會用在我們熟悉的 CPU、GPU、Memory、Power 分析,以及 App/Game 與系統行為之間的關係,整體偏向系統層級效能觀測,例如:CPU core 排程、頻率、執行緒活動、GPU counters、SurfaceFlinger、畫面耗時、耗電、截圖時間軸等。

而 APA 其實是由 Samsung Austin Research Center (SARC) 與 LunarG 合作開發,它依靠 Perfetto 進行系統追蹤,後續還會推出幀分析/除錯功能(依賴 LunarG 的 GFXReconstruct 圖形擷取與回放)。

目前 APA 有兩個不同管道版本:

獨立桌面 App 不需要 Android Studio 專案和 Gradle 建構也可以使用,還提供錄製設定的深度自訂、用於圖形分析的內建 Vulkan layer、對 GPU 計數器的深度檢視等等,並支援在 Windows、macOS 和 Linux 上原生執行。

這個獨立 App 用的是 CMP 做的哦

基本功能

APA 可以選擇在啟動時或手動觸發時從裝置擷取追蹤資料,App 也可以選擇追蹤中擷取的 GPU 計數器和其他資料;如果需要自訂,還可以設定:

buffers {
  size_kb: 65536
  fill_policy: RING_BUFFER
}

data_sources {
  config {
    name: "linux.ftrace"
    target_buffer: 0
    ftrace_config {
      ftrace_events: "sched_switch"
      ftrace_events: "sched_wakeup"
    }
  }
}

然後執行 perfetto --txt -c config.pbtx -o trace_file.perfetto-trace

接著透過 APA,你就可以在單一 UI 裡分析整個系統的運作情況,例如 CPU 的頻率和其上排程的工作,或是檢查進程及對應的執行緒活動,

對於圖形密集型應用,APA 提供來自 Qualcomm、Arm、Imagination 和三星等廠商的 GPU 效能計數器資料,你甚至可以追蹤電池與耗電狀況

另外,為了準確了解幀的執行時間,SurfaceFlinger 事件提供了對「渲染」與「顯示合成管線」的深入檢視,涵蓋從「初始程式碼取得」到「最終顯示」的所有環節,同時借助全新的螢幕截圖功能,就能直觀看到問題。

此外,還可以開啟既有的 Perfetto 軌跡,縮放時間軸查看細節,並使用標尺測量工作與事件的持續時間,接著加入書籤和註解,甚至將關鍵軌跡釘選到頂部。

另外 APA 採用專案模型,可以透過 project 追蹤多個測試結果,這在收集 A/B 測試和縱向測試的結果比較上很實用,並且可以將所有結果集中在一起:

最有意思的是,利用螢幕截圖進行視覺化導覽,APA 可以透過螢幕截圖導覽來梳理時間軸,藉由瀏覽時間軸快速定位影響效能的區段:

另外,APA 也支援渲染通道的 Vulkan Debug Markers*,開發者可以直接在 APA 中顯示的追蹤與切片裡看到從程式碼庫設定的渲染通道名稱:

除此之外,還可以利用 AI 建立 SQL 查詢以進行自訂分析,APA 支援透過 SQL 查詢進行追蹤分析,並附帶一項全新的 Perfetto SQL 技能,可以和任何 AI 代理人搭配使用:

另外還新增了另一項 Perfetto 分析技能,可以回答像是「為什麼我的應用程式啟動速度很慢?」這類高階問題,幫助在分析複雜追蹤記錄時找到切入點。

最後還有 FPS 和幀持續時間,可以在追蹤中查看 FPS 和幀持續時間:

當然,最重要的是,現在 APA 渲染追蹤的速度通常比 Android GPU Inspector 快 6 到 26 倍,同時在處理大型追蹤時,APA 的穩定性明顯更高。

例如 Forge 團隊就利用 APA 找到了需要批次呼叫 vkCmdBindDescriptorSets 的情況,從而將 CPU 設定成本降低了約 50%。反過來又讓裝置發熱量降低 2 到 3 倍、延長了會話時間,接著還利用 APA 發現可將字型和 UI 渲染工作轉移到 GPU 的場景,提高了可擴充性:

Netmarble 利用 APA 對遊戲進行微調,重點是透過改變著色器精度來提升效能,最終將某些場景的 GPU 渲染成本降低高達 90%:

Google 自家的 Filament 也類似,透過 APA 測試了各種場景,找出 GPU 處理能力不足的複雜場景,以及如何透過改善紋理壓縮與最佳化幾何體來降低複雜度,從而達到 60FPS 的目標幀率,並降低了記憶體耗用:

那它和以前 Android 工具鏈的關係是什麼?其實 Android 很早就有 Perfetto 了,但是 Perfetto UI 對很多 App/遊戲團隊來說還是偏底層工具,而 APA 的價值是把 Perfetto 的系統層級 trace 能力包裝成更面向 Android 開發者的 UI 與工作流程。

另外之前的 Android GPU Inspector,官方這次也直接拿 APA 和 Android GPU Inspector 做了比較,說 APA 渲染 trace 的速度通常比 AGI 快 6x 到 26x,而且在處理大型 traces 時更穩定,這也表示它同樣涵蓋了 GPU Inspector 的需求。

最後就是 Android Studio System Trace Viewer,APA 會作為 Android Studio Panda 4 Canary 及之後版本的更新版 System Trace Viewer 整合進去,也就是說它本身就是全新的 System Trace Viewer,還支援與 AI 串接,可以說 Android 的效能優化已經更好玩了。

所以,我選擇下載獨立 App 。

連結

developer.android.com/android-per…


原文出處:https://juejin.cn/post/7642158541735116854


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝19   💬11   ❤️1
563
🥈
alicec
📝1   ❤️2
83
🥉
我愛JS
💬1  
4
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登