수동 프로필 수집과 ProfilingManager
API라는 두 가지 기본 방법을 사용하여 프로필을 수집할 수 있습니다.
- 수동 프로필 수집은 로컬 기기에서 Perfetto를 수동으로 실행하여 프로필을 기록하는 것입니다. Perfetto로 시스템 트레이스 기록에 설명된 대로 명령어를 사용하거나 빠른 설정 타일을 사용하여 기록에 설명된 대로 빠른 설정 타일을 사용하여 이 작업을 실행할 수 있습니다.
ProfilingManager
를 사용하면 앱이 프로덕션에서 프로필을 수집할 수 있습니다.
ProfilingManager
를 사용하여 많은 사용자의 데이터를 수집 및 분석하거나 드문 문제를 디버깅하는 것이 좋습니다. 하지만 재현하기 쉬운 문제의 경우 수동 프로파일링이 더 나은 선택일 수 있습니다.
다음 표는 프로필을 기록하는 두 가지 방법의 차이점을 보여줍니다.
ProfilingManager | 수동 프로필 수집 | |
---|---|---|
프로필 타이밍 제어 | 더보기 | 간략히 |
프로필 소스 | 로컬 기기 및 공개 사용자 | 로컬 기기만 |
프로필 출력 | 수정됨 | 수정되지 않음 |
이벤트 기반 프로파일링 | 예 | 아니요 |
프로필 맞춤설정 | 간략히 | 더보기 |
확장성 | 높음 | 낮음 |
다음 섹션에서는 프로필 기록 방법 간의 차이점을 간략하게 설명합니다.
프로필 타이밍 제어
ProfilingManager
API는 타이밍 프로필 초기화가 어려울 수 있는 수동 프로파일링에 비해 앱이 프로필을 시작하거나 중지하는 시기를 더 효과적으로 제어할 수 있습니다. ProfilingManager
를 사용하면 예기치 않은 동작을 프로파일링하는 것도 더 쉬워집니다. 로컬에서 동작을 재현할 수 없는 경우에도 프로필을 수집할 수 있기 때문입니다.
프로필 소스
ProfilingManager
를 사용하면 공개 사용자로부터 데이터를 수집하여 성능 문제를 찾아 수정할 수 있습니다. 반면 수동 프로파일링을 사용하면 내 기기에서만 문제를 재현할 수 있습니다.
프로필 출력
ProfilingManager
와 수동 수집은 서로 다른 유형의 프로필 출력을 생성합니다.
ProfilingManager
는 수정된 트레이스를 생성합니다. 수정된 트레이스에는 앱 프로세스에 관한 정보가 표시되지만 시스템의 다른 앱 데이터는 숨겨집니다.ProfilingManager
는 데이터를 수집하고 수정하여 반환하므로 다른 앱의 데이터를 표시하지 않아 개인 정보를 보호하면서 공개 사용자의 트레이스를 수집할 수 있습니다.수동 프로필 수집은 수정되지 않은 트레이스를 생성합니다. 시스템 트레이스를 수동으로 기록하면 출력에 시스템에서 실행되는 모든 프로세스가 포함될 수 있습니다. 수정되지 않은 트레이스는 디버깅을 위한 더 완전한 데이터를 제공하지만 개인 정보 보호 문제로 인해 로컬에서만 액세스할 수 있습니다.
이벤트 기반 프로파일링
ProfilingManager
는 애플리케이션 응답 없음 (ANR) 오류 또는 앱 시작과 같은 특정 이벤트가 발생할 때 프로필을 수집할 수도 있습니다. ProfilingManager
이벤트 기반 수집을 위한 프로필의 시작과 중지를 처리합니다.
프로필 맞춤설정
수동 프로파일링은 가장 많은 맞춤설정을 제공하는 반면 ProfilingManager
는 맞춤설정 옵션이 적습니다.
확장성
ProfilingManager
는 앱 개발자가 공개 사용자의 프로필을 기록할 수 있는 유일한 옵션이므로 트레이싱을 확장하는 가장 좋은 방법입니다. ProfilingManager
를 사용하면 대규모 트레이스 수집 및 분석을 설정할 수 있습니다.
수동 프로파일링은 로컬 사용으로 제한됩니다.