perfetto是一項工具,可用來收集
您可以透過
Android Debug Bridge (ADB)。叫用
perfetto 工具使用 adb shell perfetto ... 指令。
perfetto採用多種不同的類型
從裝置收集效能追蹤記錄的來源,例如:
- 使用 
ftrace取得核心資訊 - 使用 
atrace取得服務與應用程式中的使用者空間註解 - 使用 
heapprofd取得服務與應用程式的原生記憶體用量資訊 
本頁說明如何呼叫 perfetto 並設定以產生
所需的輸出內容詳情請參閱
perfetto 說明文件。
語法
本節說明如何使用 ADB 針對不同模式呼叫 perfetto
以及產生追蹤記錄
資料來源選項
perfetto 包含下列兩個模式,用於決定要用來記錄追蹤記錄的資料來源:
- 淺色模式:僅選取部分資料來源,特別是 
atrace和ftrace。不過,這個模式提供的介面與systrace。 - 標準模式:在通訊協定緩衝區中取得設定
採用更多不同的資料來源
perfetto評論來源:atrace和ftrace。 
一般選項
下表列出在上述任一產品中使用 perfetto 的可用選項。
模式:
表 1. 一般可用清單 Perfetto 工具選項。
| 選項 | 說明 | 
|---|---|
--background |
    | 
   perfetto 會立即結束指令列介面並繼續
     在背景中錄製追蹤記錄。 | 
  
--background-wait | -D
    | 
   和 --background 一樣,但是會等待 (最多 30 秒) 供所有人使用
     各項資料來源結束
     如果成功確認
     而不會是零 (錯誤或逾時)。
     | 
  
--alert-id
    | 
   觸發此追蹤記錄的警示 ID。 | 
--config-id
    | 
   觸發設定的 ID。 | 
--config-uid
    | 
   註冊該設定的應用程式 UID。 | 
--subscription-id
    | 
   觸發此追蹤記錄的訂閱項目 ID。 | 
--out OUT_FILE |
    | 
   指定輸出追蹤記錄檔的所需路徑,或者如果為  注意:您必須指定完整路徑名稱,
      輸出檔案一般來說,檔案應寫入
        | 
  
--upload
    | 
   完成後,將追蹤記錄傳遞至
     proto 追蹤設定中的 IncidentReportConfig 訊息。 | 
  
--no-guardrails
    | 
   在測試期間啟用 --upload 標記時,停用防止過度使用資源的防護功能。 | 
  
--reset-guardrails
    | 
   針對測試重設防護措施的持續狀態並結束防護。 | 
--rsave-for-bugreport
    | 
   如果含有 bugreport_score > 的追蹤記錄0 正在運作,
       則將追蹤記錄儲存至檔案。完成後再輸出該路徑。
     | 
  
--query
    | 
   查詢服務狀態,並以使用者可理解的文字輸出。 | 
--query-raw
    | 
   與 --query 類似,但會輸出
      tracing_service_state.proto. | 
  
--help | -h 
    | 
   列印 perfetto 工具的說明文字。 | 
  
淺色模式
在淺色模式中使用 perfetto 的一般語法如下:
 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE
下表列出在各處使用 perfetto 時的可用選項。
淺色模式:
表 2. 可用的perfetto清單
提供的工具選項
| 選項 | 說明 | 
|---|---|
--time TIME[s|m|h] |
    | 
   以秒、分鐘或小時為單位指定追蹤記錄時間長度。舉例來說,--time 1m 會將追蹤記錄時間長度指定為 1 分鐘。預設時間長度為 10 秒。
    | 
  
--buffer SIZE[mb|gb] |
    | 
   以 MB 或 GB 為單位指定環形緩衝區空間大小。預設參數為 --buffer 32mb。
    | 
  
--size SIZE[mb|gb] |
    | 
   以 MB 或 GB 為單位指定檔案大小上限。變更者:
     根據預設,perfetto 只會使用記憶體的環形緩衝區。
    | 
  
--app | -a
    | 
   Android (atrace) 應用程式名稱 | 
這些選項後面接有事件指定詞清單:
表 3. 事件指定詞清單 淺色模式。
| 事件 | 說明 | 
|---|---|
| ATRACE_CAT | 
    指定要追蹤記錄的 atrace 類別。
    舉例來說,以下指令使用 atrace 追蹤視窗管理員:
    
    adb shell perfetto --out FILE wm
    
    如要記錄其他類別,請參閱這個
     清單
       (共   | 
  
| FTRACE_GROUP/FTRACE_NAME | 
      指定要追蹤記錄的 ftrace 事件。
      例如,下列指令會追蹤 sched/sched_switch 事件:
      
      adb shell perfetto --out FILE sched/sched_switch
       | 
  
標準模式
在一般模式中使用 perfetto 的一般語法如下:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
下表列出在各處使用 perfetto 時的可用選項。
一般模式:
表 4. 可用的perfetto清單
提供的工具選項
| 選項 | 說明 | 
|---|---|
--config CONFIG_FILE | -c CONFIG_FILE
    | 
    指定設定檔的路徑。在一般模式下,部分設定可能會在設定通訊協定緩衝區進行編碼。這個檔案必須符合 Android 開放原始碼計畫 trace_config.proto 中定義的通訊協定緩衝區結構定義。
     使用
       「  | 
  
--txt
    | 
    指示 perfetto 將設定檔剖析為 pbtxt。這項標記僅適用於本機測試,因此不建議針對正式版啟用。 | 
  
支援的資料來源
本節說明 perfetto 用來產生追蹤記錄的不同來源。
FTrace
ftrace 資料來源可讓 perfetto 從核心取得事件。
透過設定啟用這個來源
ftrace_config敬上
在 DataSourceConfig 中。
可啟用的事件包括:
安排活動:
sched/sched_switchsched/sched_wakeupsched/sched_wakeup_newsched/sched_process_execsched/sched_process_exitsched/sched_process_forksched/sched_process_freesched/sched_process_hangsched/sched_process_wait
檔案系統事件:
視您的裝置、OS 版本或核心而定,您可以看到更多的事件 廣告。詳情請參閱設定 proto。
處理程序統計資料
處理程序統計資料的資料來源可讓您取得與系統和個別程序相關的輪詢計數器。
設定 process_stats_config 來啟用這個來源
和 sys_stats_config
在 DataSourceConfig 中。
perfetto 產生的資料包括:
視您的裝置、OS 版本和核心而定,您或許可以使用更多事件。詳情請參閱 sys_stats 的設定 proto
和 process_stats。
heapprofd
heapprofd 可讓您取得原生記憶體在使用上的原因範例。
設定 heapprofd_config 來啟用這個來源
在 DataSourceConfig 中。這項設定會產生 ProfilePackets、
包括呼叫堆疊的 Java 框架
如要進一步瞭解如何使用 heapprofd,請前往:
perfetto.dev。
其他來源
視您的裝置、OS 版本和核心而定,您或許可以選取更多的資料來源 廣告。詳情請參閱資料來源設定 proto。
如要進一步瞭解 perfetto,請前往 perfetto.dev。