估算 CPU 和 GPU 的影格處理時間 (影格時間),有助於瞭解應用程式的效能並找出瓶頸。使用 AGI 剖析應用程式時,System Profiler 會提供追蹤資料,可用於估算影格時間。
CPU 時間
在 AGI 中,您可以在系統設定檔的 CPU 軌跡中,查看 CPU 影格時間總計和活動。
總 CPU 作業時間
如要評估 CPU 總耗用時間,請選取時間範圍,包括連續影格提交事件之間的時間。影格提交事件為 eglSwapBuffers (適用於 OpenGL) 和 vkQueuePresentKHR (適用於 Vulkan)。

eglSwapBuffer 事件之間的時間。
vkQueuePresentKHR 事件之間的時間。這項指標是 CPU 總時間的預估值,但不一定代表 CPU 實際運作時間。舉例來說,在受 GPU 限制的應用程式中,CPU 可能會等待 GPU 完成工作,再提交新的影格。當 dequeueBuffer、eglSwapBuffer (適用於 OpenGL) 或 vkQueuePresent (適用於 Vulkan) 事件佔用大量 CPU 時間時,通常會發生這種情況。等待時間會計入 CPU 總時間,但不會計入 CPU 實際運作時間。

dequeueBuffer 和 eglSwapBuffer 事件期間,CPU 大量閒置。CPU 活躍時間
CPU 處於非閒置狀態時,會執行應用程式程式碼,這段時間就是 CPU 活躍時間。
如要評估 CPU 作用時間,請查看 CPU 事件正上方的「執行中」切片。計算兩個影格提交事件之間,處於「執行中」Running狀態的所有追蹤部分。請務必加入可用的執行緒。

如要測量 CPU 作用時間,也可以查看 CPU 軌中的應用程式切片。這些切片表示 CPU 正在執行,且對應至「執行中」切片。

如要協助識別應用程式切片,可以將 ATrace 標記新增至應用程式。這樣一來,系統分析器 CPU 軌跡就會顯示這些標記。

估算 GPU 影格時間
如要估算 GPU 影格時間,您可以使用 System Profiler 中的 GPU 切片或 GPU 計數器。使用 GPU 切片時,預估結果會更準確。
GPU 切片
如果系統設定檔提供 GPU 切片資訊,您就可以測量應用程式處理與單一影格相關聯工作所花費的總時間,取得非常準確的 GPU 影格時間資訊。
馬利裝置
在 Mali 裝置上,GPU 切片有片段、非片段,以及偶爾的補充非片段軌。對於較不複雜的影格,片段和非片段工作是循序進行,因此只要查看 GPU 作用中工作之間的間隔,即可區分不同影格的工作。
或者,如果您熟悉提交至 GPU 的工作,識別提交的算繪通道模式可提供影格開始和結束時間的相關資訊。

如果應用程式的 GPU 工作流程平行處理程度較高,您可以在每個切片的「選取」窗格中,找出具有相同 submissionID 的所有影格,即可取得 GPU 影格時間。
對於以 Vulkan 為基礎的應用程式,可使用多項提交內容來組成影格。使用「Vulkan Events」軌跡追蹤提交 ID,其中包含每個提交內容的切片。選取提交內容切片後,系統會醒目顯示與提交內容對應的所有 GPU 活動切片。
Adreno 裝置
在 Adreno 裝置上,GPU 切片會顯示在「GPU Queue 0」軌中,且一律依序呈現,因此您可以查看代表影格轉譯階段的所有切片,並用來測量 GPU 影格時間。

與先前說明的 Mali 情況類似:如果應用程式使用 Vulkan,Vulkan 事件軌跡會提供提交執行影格的工作相關資訊。如要醒目顯示算繪通道,請按一下與影格相關聯的「Vulkan Events」切片。
在某些情況下,由於應用程式大量使用 GPU,因此較難區分 GPU 影格的界線。在這些情況下,如果您熟悉提交至 GPU 的工作,可以找出執行算繪傳遞的模式,並根據該資訊判斷影格界線。
GPU 計數器
如果追蹤記錄中沒有 GPU 切片資訊,可以使用 GPU 計數器軌跡估算 GPU 影格時間。
馬利裝置
在 Mali 裝置上,您可以透過 GPU 使用率軌跡,估算非 GPU 密集型應用程式的 GPU 影格時間。如果應用程式的 GPU 密集程度較低,GPU 活動會定期出現高低起伏,而不是持續處於高活動狀態。如要使用 GPU 使用率軌跡估算 GPU 影格時間,請測量軌跡中高活動期間的長度。
如果應用程式更耗用 GPU 資源,GPU 使用率可能會持續維持在非常高的水準。在這種情況下,您可以使用「片段佇列使用率」和「非片段佇列使用率」軌跡,監控 GPU 活動並估算 GPU 影格時間。透過尋找片段和非片段軌跡中的模式,您可以大致估算影格的邊界,並使用該邊界測量 GPU 影格時間。
Adreno 裝置
在 Adreno 裝置上,如果應用程式並未大量使用 GPU,您可以按照上一節中Mali 裝置的估算方式,估算 GPU 影格時間。
如果應用程式更耗用 GPU,且應用程式的 GPU 使用率百分比持續偏高,您可以透過「每秒的 Vertex 指令」和「每秒的片段指令」軌跡,估算 GPU 影格時間。透過尋找這些軌跡活動層級的模式,您可以大致估算影格的邊界位置,並用來測量 GPU 影格時間。
其他軌跡可能提供類似資訊:
- 每秒著色頂點數
- 片段 (陰影)/秒
- % Time Shading Vertices
- 時間陰影片段百分比