시스템 프로필 보기

Android GPU 검사기 (AGI)에서는 시스템 프로파일러 UI에서 시스템 프로필을 보고 분석할 수 있습니다. 시스템을 프로파일링하고 AGI에서 트레이스 파일을 열면 시스템 프로파일러는 추가 세부정보를 표시하는 확장 가능한 항목과 함께 타임라인에 프로파일링 데이터를 표시합니다.

시스템 프로파일러 UI의 기본 요소에는 다음이 포함됩니다.

  • 툴바

  • 타임라인: 트레이스 이벤트의 기간을 나타냅니다.

  • Track 창: 타임라인과 관련된 프로파일링 데이터가 표시됩니다.

  • 세부정보 창: 선택한 항목에 관한 세부정보를 표시하는 확장형 창입니다.

데이터 프로파일링

트레이스 파일에서 프로파일링 데이터는 트레이스 이벤트라고 하는 타임스탬프가 적용된 이벤트에 저장됩니다. 트레이스 이벤트는 다양한 유형의 슬라이스와 카운터로 구성됩니다. 예를 들어 CPU 트레이스 이벤트에는 예약 슬라이스가 포함되고 GPU 추적 이벤트에는 GPU 성능 카운터 및 스레드 슬라이스가 포함됩니다.

시스템 프로파일러 UI의 트랙 창에는 타임라인을 기반으로 하는 트랙이라는 행에 표시되는 트레이스 이벤트가 포함되어 있습니다. 동일한 유형의 트랙이 트랙 그룹에 표시됩니다.

GPU 트랙

GPU는 GPU 프로파일링 정보 표시를 추적합니다. 다음은 기본 GPU 트랙 유형입니다.

  1. GPU 대기열 트랙: 애플리케이션의 GPU 활동입니다.

  2. GPU 카운터 트랙: 주기적인 간격으로 샘플링된 GPU의 하드웨어 카운터.

  3. Vulkan 이벤트 트랙: Vulkan API 관련 이벤트입니다.

  4. SurfaceFlinger 트랙: 그래픽 버퍼가 시스템을 통해 이동하는 방식을 나타내는 SurfaceFlinger 이벤트입니다.

GPU 큐 트랙

GPU는 트레이스 중에 실행된 하드웨어 큐 수를 기반으로 하나 이상의 GPU 큐 트랙을 포함할 수 있습니다. GPU 큐 트랙에는 앱에서 사용한 GPU 작업의 기간과 유형을 나타내는 활동 슬라이스가 포함됩니다.

활동 슬라이스에는 Vulkan 명령어 버퍼, 렌더 패스, 작업을 시작한 프레임 버퍼 등 볼 수 있는 메타데이터가 포함됩니다. 이러한 객체의 Vulkan 핸들은 세부정보 창에 다음과 같이 표시됩니다.

  • VkCommandBuffer
  • VkRenderPass
  • VkFrameBuffer

이러한 객체에 사용자 친화적인 이름을 지정하면 VK_EXT_debug_utils 확장 프로그램의 vkSetDebugUtilsObjectNameEXT 함수 또는 VK_EXT_debug_marker 확장 프로그램의 vkDebugMarkerSetObjectNameEXT 함수를 사용하여 핸들과 함께 트레이스에서 객체를 쉽게 식별할 수 있습니다. 두 확장 프로그램 모두 AGI에서 구현되며 추적하는 동안 애플리케이션에서 사용할 수 있습니다.

GPU 카운터 트랙

GPU 카운터는 주기적 간격으로 샘플링된 GPU 성능 카운터의 값을 그래프로 추적합니다. 그래프에는 샘플 간 GPU 기본 하드웨어 구성요소의 성능 편차가 표시됩니다. 이 정보를 사용하여 GPU 사용량의 병목 현상을 파악할 수 있습니다.

사용 가능한 카운터는 하드웨어에 따라 다릅니다. 트랙 이름 위로 마우스를 가져가면 각 카운터에 대한 간단한 설명을 볼 수 있습니다. 자세한 내용은 GPU 성능 카운터를 참고하세요.

Vulkan 이벤트 트랙

Vulkan 이벤트 트랙은 트레이스 중에 기록된 Vulkan API 이벤트를 보여줍니다. 트랙 이벤트 유형은 주로 큐 제출 이벤트 (vkQueueSubmit 호출)입니다. 큐 제출 이벤트를 클릭하면 AGI가 호출과 연결된 GPU 활동 슬라이스를 강조표시합니다. 이 데이터를 사용하여 Vulkan API 호출에서 큐에 추가된 비동기 작업과 CPU와 GPU 간의 지연 시간을 검사할 수 있습니다.

SurfaceFlinger 트랙

SurfaceFlinger 트랙은 그래픽 버퍼가 표시될 때까지 시스템을 통과할 때 그래픽 버퍼 (앱의 swapchain 렌더링 타겟)의 수명 주기를 표시합니다. 이벤트는 버퍼별로 집계되므로 버퍼를 획득하고 게시하는 데 필요한 오버헤드와 지연 시간을 쉽게 추적할 수 있습니다.

프로파일링 데이터와 상호작용

이 섹션에서는 시스템 프로파일러 UI에서 프로파일링 데이터와 상호작용하는 방법을 설명합니다.

고정

고정 버튼을 사용하여 트랙을 고정하고 그룹을 추적할 수 있습니다.

접기 및 펼치기

일부 트랙과 모든 트랙 그룹은 접을 수 있습니다. 일부 트랙 그룹은 축소되면 요약이 표시됩니다. 예를 들어 CPU 트랙 그룹을 축소하면 전체 CPU 사용량이 그래프에 표시됩니다.

Zoom

AGI는 확대/축소 수준을 기반으로 프로파일링 데이터를 집계합니다. 처음 트레이스 파일을 열면 시스템 프로파일러 UI는 전체 프로필을 최대 축소 수준으로 표시합니다. 관심 영역을 찾고 세부정보를 확인하여 프로필을 검사할 수 있습니다.

다양한 트랙 유형에서 확대 및 축소하면 다양한 유형의 프로파일링 데이터가 표시됩니다. 예를 들어 CPU 트랙은 처음에는 각 스레드의 시간 슬라이스를 표시하다가 결국 확대할 때 CPU 코어 사용률 데이터를 표시하도록 전환합니다.

세부정보 보기

트랙 창에서 항목을 선택하여 세부정보 창에 자세한 메타데이터를 표시할 수 있습니다. 항목을 선택할 수 있는 경우 그 위로 마우스를 가져가면 커서가 포인터로 변경되고 항목을 선택할 수 있습니다.

기간 선택

기간을 선택하여 여러 트랙의 트레이스 이벤트를 비교할 수 있습니다. 이렇게 하려면 타이밍 모드를 사용 설정한 다음 드래그하여 범위를 선택합니다. 범위의 모든 값이 흐리게 표시되고 범위 기간이 표시됩니다.

M 키를 눌러 선택한 슬라이스의 시간 범위를 선택할 수도 있습니다. 그런 다음 추가 트랙을 스크롤하여 동일한 기간의 이벤트를 식별할 수 있습니다.

WASD 키를 사용하거나 스크롤 및 화면 이동하여 트랙 창의 항목을 탐색할 수 있습니다. 시스템 프로파일러는 Systrace와 동일한 키보드 및 마우스 단축키를 사용합니다. 사용할 수 있는 단축키는 다음과 같습니다.

  • WS 또는 Ctrl++Ctrl+-: 확대/축소
  • AD 또는 leftright 화살표로 뷰를 왼쪽과 오른쪽으로 화면 이동
  • QE 또는 updown 화살표가 트랙을 스크롤합니다.
  • shift 길게 누르면 탐색의 이동 속도가 빨라집니다.
  • Ctrl 키를 누른 상태에서 스크롤하면 선택한 항목이 확대/축소됩니다.
  • F는 선택된 항목을 확대/축소합니다.
  • Z+0 키를 재설정하고 완전히 축소합니다.
  • V는 트레이스에서 VSync를 사용할 수 있는 경우 VSync 강조표시를 전환합니다.
  • M는 기간을 선택하여 현재 선택 항목을 표시합니다.
  • H 또는 ?은 키보드 및 마우스 단축키 요약본을 표시합니다.

툴바에는 탐색 모드 간에 전환하는 버튼이 포함되어 있습니다. 이 버튼은 트랙 창에서 항목을 드래그할 때 실행되는 작업을 선택합니다. 1, 2, 3, 4 키를 눌러 다음 탐색 모드를 선택할 수도 있습니다.

  1. 선택: 드래그하여 항목을 선택합니다.
  2. 이동: 드래그하여 트랙을 이동하고 스크롤합니다. 이는 기본값입니다.
  3. 확대/축소: 세로로 드래그하여 항목을 확대/축소합니다.
  4. 시간: 드래그하여 기간을 선택합니다.

다음 특수키로 탐색 모드를 사용할 수도 있습니다.

  • Shift+드래그하여 상자 선택 항목을 선택합니다.
  • Space+드래그하여 이동하고 스크롤하세요.
  • Ctrl+스크롤하여 확대/축소
  • Ctrl+드래그하여 기간을 선택합니다.