프로파일링 제한사항

프로필 수집이 예상대로 진행되지 않는 상황이 여러 가지 있습니다.

  • 내부 오류로 인해 프로필 수집이 실패합니다. 이 경우 ProfilingResult API에서 오류를 알려줍니다.
  • 비율 제한으로 인해 프로필 수집이 실패합니다. 자세한 내용은 비율 제한 작동 방식을 참고하세요.
  • 프로필 수집은 성공하지만 앱에 즉시 알림이 전송되지는 않습니다. 이 문제는 긴 프로필 수집 중에 앱이 비정상 종료되는 경우 발생할 수 있습니다. 앱이 닫히면 시스템에서 프로필을 자동으로 중지하고 저장합니다. 앱이 다시 시작되고 ProfilingManager로 일반 리스너를 등록하면 수집된 프로필에 관한 정보가 앱에 제공됩니다.

속도 제한 작동 방식

ProfilingManager에는 개별 앱과 전체 시스템 모두의 비율 제한기가 포함됩니다. 전체 프로파일링 세션은 많은 리소스를 사용하므로 비율 제한기는 앱이 프로필을 너무 많이 기록하여 시스템 리소스를 너무 많이 사용하지 못하도록 합니다.

일부 프로필은 다른 프로필보다 리소스 집약적이므로 앱과 시스템 속도 제한기는 수집된 각 프로필 유형에 비용을 할당합니다. 앱 제한기는 개별 앱이 총비용에 따라 녹화할 수 있는 양을 제어합니다. 하지만 시스템 제한기는 모든 앱에서 기록한 모든 프로필의 총비용을 제어합니다.

속도 제한기는 각 앱이 사용할 수 있는 총비용을 설정합니다 (이 비용은 모든 앱에 동일함). 각 프로필은 유형에 따라 이 총비용의 일부를 사용합니다.

비율 제한기는 다음 세 가지 기간을 사용합니다.

  • 시간당: 시간당 허용되는 최대 비용이 있습니다.
  • 일별: 일별로 허용되는 최대 비용이 있습니다.
  • 주간: 주당 허용되는 최대 비용이 있습니다.

비율 제한기는 각 기간 내에 사용할 수 있는 총비용을 설정합니다. 예를 들어 앱이 시간당 X개, 일당 Y개, 주당 Z개의 프로필을 기록하도록 허용될 수 있습니다. 앱이 이러한 기간 중 하나에서 한도에 도달하면 향후 프로필 요청에서 ERROR_FAILED_RATE_LIMIT_PROCESS 오류가 발생합니다.

이러한 기간은 시스템 수준 비율 제한에서도 유사하게 작동합니다. 하지만 시스템 속도 제한기는 모든 앱에서 공유하는 전역 제한입니다. 이 한도는 개별 앱 할당량과 별도로 설정되지만 모든 프로필이 동일한 시간, 일, 주 기간을 사용하여 이 한도에 기여합니다. 이 전역 한도에 도달하면 ERROR_FAILED_RATE_LIMIT_SYSTEM 오류가 표시됩니다.