分析限制

在多种情况下,个人资料收集可能无法按预期进行:

  • 由于内部错误,个人资料收集失败。如果发生这种情况,ProfilingResult API 会告知您相关错误。
  • 由于速率限制,个人资料收集失败。如需了解详情,请参阅速率限制的工作原理
  • 成功收集了配置文件,但应用不会立即收到通知。 如果应用在长时间收集配置文件期间崩溃,可能会发生这种情况。如果应用关闭,系统会自动停止并保存个人资料。当应用重启并向 ProfilingManager 注册常规监听器时,系统会告知应用已收集的分析数据。

速率限制的运作方式

ProfilingManager 包含针对单个应用和整个系统的速率限制器。速率限制器会记录过多的配置文件,从而防止应用使用过多的系统资源,因为完整的分析会话会使用大量资源。

应用和系统速率限制器都会为收集的每种类型的配置文件分配费用,因为有些配置文件比其他配置文件更消耗资源。应用限制器会根据单个应用的总费用来控制其可记录的费用。不过,系统限制器会控制所有应用记录的所有配置的总费用。

速率限制器会设置每个应用可使用的总费用(所有应用的此费用都相同)。每个媒体资料都会使用一部分总费用,具体取决于其类型。

速率限制器使用三个时间段:

  • 每小时:每小时允许的最大费用。
  • 每天:每天允许的最高费用。
  • 每周:每周允许的最大费用。

速率限制器会设置可在每个时间段内使用的总费用。例如,某个应用可能被允许每小时记录 X 个个人资料、每天记录 Y 个个人资料,以及每周记录 Z 个个人资料。如果您的应用在上述任何时间段内达到限额,后续的个人资料请求将导致 ERROR_FAILED_RATE_LIMIT_PROCESS 错误。

这些时间段在系统级速率限制方面发挥着类似的作用。不过,系统速率限制器是一项全局限制,所有应用共用这一限制。此限制与各个应用的配额分开设置,但每个个人资料都会计入此限制,并使用相同的小时、天和周时间段。如果达到此全局限制,您将收到 ERROR_FAILED_RATE_LIMIT_SYSTEM 错误。