Partager via


Choisir la stratégie de coordinateur d’activité appropriée

Activity Coordinator fournit plusieurs stratégies de modèle, qui doivent être sélectionnées en fonction des ressources requises par votre tâche.

Comprendre votre charge de travail d’activité

Déterminez les ressources du coordinateur d’activité dont votre tâche a besoin et les conditions dans lesquelles votre tâche doit s’exécuter. Le profilage de la tâche à l’aide d’une trace de performances est un bon point de départ.

Choix des ressources

Choisissez des ressources dérivées de la trace de performances. Ces ressources doivent être celles sur laquelle votre charge de travail d’activité aura un impact. N’oubliez pas les ressources que vous consommez ou affectez implicitement, telles que l’inactivité de l’utilisateur et l’alimentation.

Choix des conditions

Choisissez des conditions en fonction de la consommation de ressources de votre charge de travail, comme indiqué dans le suivi des performances. En général, nous vous recommandons d’utiliser les meilleures conditions pour les ressources nécessaires et, si nécessaire, de mettre à jour votre stratégie avec des conditions moindres si elle ne répond pas à vos besoins dans le délai souhaité. Il est préférable de commencer avec les meilleures conditions et de passer à des conditions inférieures avant d’exécuter lorsque votre stratégie n’est pas satisfaite (ses conditions de ressources ne sont pas remplies) pour respecter les délais. Cela permet à l’API de réduire l’impact sur l’utilisateur et le système de votre activité tout en augmentant les opportunités d’exécution de votre activité.

Pour les charges de travail avec une consommation négligeable ou faible de ressources, des conditions telles que ACTIVITY_COORDINATOR_CONDITION_MEDIUM peuvent être utilisables sans affecter négativement le système. Les charges de travail avec une consommation plus élevée sont mieux adaptées aux conditions d’utilisation lorsque l’utilisation est moins susceptible d’avoir un impact sur l’expérience utilisateur, comme ACTIVITY_COORDINATOR_CONDITION_GOOD. Ces charges de travail sont plus susceptibles d’avoir un impact significatif lors de l’utilisation de conditions inférieures, et ces impacts peuvent ne pas être temporaires par nature. Par exemple, la consommation d’Internet dans une condition réseau moyenne peut entraîner un coût financier pour l’utilisateur si ce réseau est mesuré et facturé.

Gardez à l’esprit les types d’appareils et de configurations pris en charge par votre application en plus des fonctionnalités de la machine à partir de toutes les traces de performances. La variabilité dans l’environnement cible peut signifier des différences dans la façon dont votre charge de travail affecte l’utilisateur, le système et la probabilité que votre stratégie soit satisfaite sur une période donnée.

Échéance

Différentes contraintes de temps peuvent être associées à votre activité. Un travail plus long ou qui doit commencer ou être terminé dans un laps de temps relativement court peut être mieux servi en utilisant des conditions moindres pour augmenter la probabilité d’ouverture de la stratégie. Un travail en cours d’exécution plus court ou un travail qui a des exigences de temps libre peuvent avoir leurs besoins satisfaits en utilisant les meilleures conditions. Sur des périodes plus longues, le système cible est susceptible d’avoir des périodes de faible consommation de ressources. Si une échéance approche, nous vous recommandons de rétrograder votre stratégie si des progrès suffisants n’ont pas été réalisés avant de recourir à des méthodes d’exécution régulières après ou à l’approche de l’échéance. Le travail récurrent peut ensuite basculer vers la stratégie d’origine à l’achèvement.

Stratégies de modèle

L’API est fournie avec un ensemble de stratégies de modèle pour le profil de travail classique qui peut être utilisé pour commencer à utiliser l’API. Pour la plupart des programmes qui effectuent l’informatique locale, nous vous recommandons d’utiliser les stratégies de modèle.

Recommandation de stratégie

Parmi les stratégies de modèle fournies, si vous n’êtes pas sûr de celui que vous devez choisir, le ACTIVITY_COORDINATOR_POLICY_TEMPLATE_GOOD doit correspondre à la facture dans la plupart des cas. Cette stratégie réduit l’impact sur l’utilisateur tout en offrant une probabilité raisonnable qu’elle soit suffisamment ouverte pour terminer le travail du développeur.

Personnaliser les stratégies de modèle

Les stratégies de modèle peuvent omettre certaines ressources (par exemple, GPU) qui peuvent ne pas être requises dans les cas d’usage généraux. En fonction de la charge de travail prévue, une stratégie peut être personnalisée à l’aide des stratégies de modèle comme point de départ.

Créer des stratégies à partir de zéro

Les développeurs qui ont besoin d’un contrôle total peuvent commencer à partir d’une stratégie vide : ACTIVITY_COORDINATOR_POLICY_TEMPLATE_EMPTY. Toutefois, pour ces scénarios, il est recommandé de commencer par ACTIVITY_COORDINATOR_POLICY_TEMPLATE_BASE, qui spécifie les ressources et conditions recommandées minimales qui s’appliquent à la plupart des situations. Cela permet de s’assurer que les conditions de ressources importantes ne sont pas omises par erreur lors de la configuration d’une stratégie à partir de zéro, telles que l’inactivité de l’utilisateur, le processeur et les ressources d’alimentation.

Vue d’ensemble de l’API Du coordinateur d’activité

API et terminologie du coordinateur d’activité

Exemple de projet du coordinateur d’activités