Limites de profilage

Il existe plusieurs situations dans lesquelles la collecte de profils peut ne pas se dérouler comme prévu :

  • La collecte des profils échoue en raison d'une erreur interne. Dans ce cas, l'API ProfilingResult vous informe des erreurs.
  • La collecte de profils échoue en raison de la limitation du débit. Pour en savoir plus, consultez Fonctionnement de la limitation du débit.
  • La collecte de profils réussit, mais l'application n'en est pas immédiatement informée. Cela peut se produire si l'application plante lors de longues collectes de profils. Si l'application se ferme, le système arrête et enregistre automatiquement le profil. L'application est informée du profil collecté lorsqu'elle redémarre et enregistre un écouteur général avec ProfilingManager.

Fonctionnement de la limitation du débit

ProfilingManager inclut un limiteur de débit pour les applications individuelles et pour l'ensemble du système. Le limiteur de débit empêche les applications d'utiliser trop de ressources système en enregistrant trop de profils, car une session de profilage complète utilise beaucoup de ressources.

Les limiteurs de fréquence d'application et de système attribuent un coût à chaque type de profil collecté, car certains profils sont plus gourmands en ressources que d'autres. Le limiteur d'applications contrôle la quantité d'enregistrements qu'une application individuelle peut effectuer en fonction de son coût total. Toutefois, le limiteur système contrôle le coût total de tous les profils enregistrés par toutes les applications.

Le limiteur de fréquence définit un coût total que chaque application peut utiliser (ce coût est le même pour toutes les applications). Chaque profil utilise une partie de ce coût total, en fonction de son type.

Le limiteur de débit utilise trois périodes :

  • Par heure : un coût maximal est autorisé par heure.
  • Par jour : un coût maximal est autorisé par jour.
  • Par semaine : un coût maximal est autorisé par semaine.

Le limiteur de débit définit un coût total qui peut être utilisé au cours de chacune de ces périodes. Par exemple, une application peut être autorisée à enregistrer X profils par heure, Y par jour et Z par semaine. Si votre application atteint sa limite au cours de l'une de ces périodes, les futures requêtes de profil généreront une erreur ERROR_FAILED_RATE_LIMIT_PROCESS.

Ces périodes fonctionnent de la même manière pour la limitation du débit au niveau du système. Toutefois, le limiteur de débit du système est une limite globale partagée par toutes les applications. Cette limite est définie séparément des quotas d'applications individuels, mais chaque profil y contribue, en utilisant les mêmes périodes horaires, quotidiennes et hebdomadaires. Si cette limite globale est atteinte, vous recevrez l'erreur ERROR_FAILED_RATE_LIMIT_SYSTEM.