올바른 프로파일링 방법 선택

수동 프로필 수집과 ProfilingManager API라는 두 가지 기본 방법을 사용하여 프로필을 수집할 수 있습니다.

  • 수동 프로필 수집은 로컬 기기에서 Perfetto를 수동으로 실행하여 프로필을 기록하는 것입니다. Perfetto로 시스템 트레이스 기록에 설명된 대로 명령어를 사용하거나 빠른 설정 타일을 사용하여 기록에 설명된 대로 빠른 설정 타일을 사용하여 이 작업을 실행할 수 있습니다.
  • ProfilingManager를 사용하면 앱이 프로덕션에서 프로필을 수집할 수 있습니다.

ProfilingManager를 사용하여 많은 사용자의 데이터를 수집 및 분석하거나 드문 문제를 디버깅하는 것이 좋습니다. 하지만 재현하기 쉬운 문제의 경우 수동 프로파일링이 더 나은 선택일 수 있습니다.

다음 표는 프로필을 기록하는 두 가지 방법의 차이점을 보여줍니다.

ProfilingManager 수동 프로필 수집
프로필 타이밍 제어 더보기 간략히
프로필 소스 로컬 기기 및 공개 사용자 로컬 기기만
프로필 출력 수정됨 수정되지 않음
이벤트 기반 프로파일링 아니요
프로필 맞춤설정 간략히 더보기
확장성 높음 낮음

다음 섹션에서는 프로필 기록 방법 간의 차이점을 간략하게 설명합니다.

프로필 타이밍 제어

ProfilingManager API는 타이밍 프로필 초기화가 어려울 수 있는 수동 프로파일링에 비해 앱이 프로필을 시작하거나 중지하는 시기를 더 효과적으로 제어할 수 있습니다. ProfilingManager를 사용하면 예기치 않은 동작을 프로파일링하는 것도 더 쉬워집니다. 로컬에서 동작을 재현할 수 없는 경우에도 프로필을 수집할 수 있기 때문입니다.

프로필 소스

ProfilingManager를 사용하면 공개 사용자로부터 데이터를 수집하여 성능 문제를 찾아 수정할 수 있습니다. 반면 수동 프로파일링을 사용하면 내 기기에서만 문제를 재현할 수 있습니다.

프로필 출력

ProfilingManager와 수동 수집은 서로 다른 유형의 프로필 출력을 생성합니다.

  • ProfilingManager는 수정된 트레이스를 생성합니다. 수정된 트레이스에는 앱 프로세스에 관한 정보가 표시되지만 시스템의 다른 앱 데이터는 숨겨집니다. ProfilingManager는 데이터를 수집하고 수정하여 반환하므로 다른 앱의 데이터를 표시하지 않아 개인 정보를 보호하면서 공개 사용자의 트레이스를 수집할 수 있습니다.

  • 수동 프로필 수집은 수정되지 않은 트레이스를 생성합니다. 시스템 트레이스를 수동으로 기록하면 출력에 시스템에서 실행되는 모든 프로세스가 포함될 수 있습니다. 수정되지 않은 트레이스는 디버깅을 위한 더 완전한 데이터를 제공하지만 개인 정보 보호 문제로 인해 로컬에서만 액세스할 수 있습니다.

이벤트 기반 프로파일링

ProfilingManager는 애플리케이션 응답 없음 (ANR) 오류 또는 앱 시작과 같은 특정 이벤트가 발생할 때 프로필을 수집할 수도 있습니다. ProfilingManager 이벤트 기반 수집을 위한 프로필의 시작과 중지를 처리합니다.

프로필 맞춤설정

수동 프로파일링은 가장 많은 맞춤설정을 제공하는 반면 ProfilingManager는 맞춤설정 옵션이 적습니다.

확장성

ProfilingManager는 앱 개발자가 공개 사용자의 프로필을 기록할 수 있는 유일한 옵션이므로 트레이싱을 확장하는 가장 좋은 방법입니다. ProfilingManager를 사용하면 대규모 트레이스 수집 및 분석을 설정할 수 있습니다. 수동 프로파일링은 로컬 사용으로 제한됩니다.