이 페이지에서는 트레이스를 가져와 Perfetto UI에서 시각화하는 방법을 설명합니다.
트레이스 가져오기
프로필이 기록되면 트레이스가 기기에 저장됩니다. 이러한 트레이스를 분석하려면 먼저 트레이스를 가져와야 합니다.
추적 위치는 ProfilingResult.getResultFilePath()
에서 제공합니다.
트레이스 위치를 가져오는 방법을 알아보려면 프로필 캡처 방법을 참고하세요. 트레이스의 위치를 확인한 후 트레이스를 서버에 업로드할 수 있습니다.
로컬 테스트: ADB를 사용하여 트레이스 가져오기
adb
를 사용하여 트레이스를 가져오면 성능을 확인하고 로컬로 디버깅하는 데 도움이 됩니다.
수정된 트레이스는 기기의 파일에 저장됩니다. 저장된 프로필의 일반적인 경로는 다음과 같습니다.
/data/user/0/<app>/files/profiling/profile<tag><datetime>.perfetto-trace
각각의 의미는 다음과 같습니다.
<app>
은 앱 이름입니다.<datetime>
은 트레이스를 가져온 날짜와 시간입니다.<tag>
는setTag
를 사용하여 구성된 사용자 제공 태그입니다.
수정되지 않은 트레이스가 사용 설정되고 저장된 경우 다음 adb
명령어를 사용하여 기기에서 가져옵니다.
adb pull /data/misc/perfetto-traces/profiling/<trace-name>.perfetto-trace-unredacted
trace 시각화
트레이스를 컴퓨터로 가져온 후 Perfetto UI에서 볼 수 있습니다.

수정된 트레이스에서 OtherProcesses
섹션은 다른 프로세스의 모든 CPU 활동을 결합합니다. 프로세스를 결합하면 다른 프로세스가 수행한 작업이 비공개로 유지됩니다.
하지만 이 결합된 CPU 활동을 확인하면 녹화 중에 시스템에 과부하가 걸렸는지 확인할 수 있습니다. 시스템 활동을 확인하면 내부 문제로 인해 앱이 느려졌는지 아니면 시스템이 전반적으로 느려졌는지 파악할 수 있습니다.
다음 이미지는 트레이스에서 볼 수 있는 주요 부분을 강조 표시하고 간략하게 설명합니다.

- CPU 목록: 기기에서 사용할 수 있는 모든 프로세서를 표시합니다.
- CPU 작업: 각 CPU가 실행한 스레드를 보여줍니다.
- 기타 프로세스 보기: 기타 프로세스에서 소비한 CPU 리소스를 표시합니다.
- 프로세스 뷰: 앱의 프로세스를 보여줍니다.
- 스레드 뷰: 프로세스 내에서 실행되는 스레드와 스레드 상태 (실행 가능 (R), 실행 중 (R), 절전 모드 (S), 무중단 절전 모드 (D))를 표시합니다. 이는 Linux 프로세스 상태에 직접 매핑됩니다.
- 트레이스 슬라이스: 이 섹션에는 앱 개발자 또는 프레임워크가 추가한 트레이스 주석이 표시됩니다. 이러한 주석은
Trace.beginSection
와Trace.endSection
간의 계산을 포함합니다.
Perfetto UI 및 트레이스 시각화에 관한 자세한 내용은 Perfetto 문서를 참고하세요.