Choisir la bonne méthode de profilage

Vous pouvez collecter des profils à l'aide de deux méthodes principales : la collecte manuelle de profils et l'API ProfilingManager.

  • La collecte manuelle de profils consiste à exécuter manuellement Perfetto sur votre appareil local pour enregistrer des profils. Vous pouvez le faire à l'aide de commandes, comme décrit dans Enregistrer des traces système avec Perfetto, ou à l'aide du bloc Quick Settings (Réglages rapides), comme expliqué dans Enregistrer avec le bloc "Réglages rapides".
  • ProfilingManager permet aux applications de collecter des profils en production.

Nous vous recommandons d'utiliser ProfilingManager pour collecter et analyser les données de nombreux utilisateurs ou pour déboguer des problèmes rares. Toutefois, pour les problèmes plus faciles à reproduire, le profilage manuel peut être un meilleur choix.

Le tableau suivant montre les différences entre ces deux méthodes d'enregistrement des profils :

ProfilingManager Collecte manuelle de profils
Contrôle du temps d'appui du profil Plus Moins
Source du profil Appareil local et utilisateurs publics Appareil local uniquement
Sortie du profil Masqué Non masqué
Profilage basé sur des événements Oui Non
Personnalisation du profil Moins Plus
Évolutivité Élevée Faible

Les sections suivantes décrivent brièvement les différences entre les méthodes d'enregistrement des profils.

Contrôle du temps d'appui du profil

L'API ProfilingManager offre plus de contrôle sur le moment où une application démarre ou arrête un profil que le profilage manuel, où l'initialisation du profil de timing peut être difficile. ProfilingManager facilite également le profilage des comportements inattendus, car vous pouvez collecter un profil même si vous ne pouvez pas reproduire le comportement localement.

Source du profil

Avec ProfilingManager, vous pouvez collecter des données auprès d'utilisateurs publics pour identifier et résoudre les problèmes de performances. En revanche, le profilage manuel ne vous permet de reproduire les problèmes que sur votre propre appareil.

Sortie du profil

ProfilingManager et la collecte manuelle produisent différents types de sorties de profil :

  • ProfilingManager produit des traces masquées. Les traces masquées affichent des informations sur le processus de votre application, mais masquent les données d'autres applications sur le système. Étant donné que ProfilingManager collecte et masque les données avant de les renvoyer, vous pouvez collecter des traces auprès d'utilisateurs publics tout en protégeant leur confidentialité en n'affichant pas les données d'autres applications.

  • La collecte manuelle de profils produit des traces non masquées. Lorsque vous enregistrez manuellement une trace système, la sortie peut inclure tous les processus en cours d'exécution sur le système. Bien que ces traces non masquées offrent des données plus complètes pour le débogage, vous ne pouvez y accéder que localement pour des raisons de confidentialité.

Profilage basé sur des événements

ProfilingManager peut également collecter des profils lorsque des événements spécifiques se produisent, tels qu'une erreur "Application ne répond pas" (ANR) ou le démarrage d'une application. ProfilingManager gère le démarrage et l'arrêt des profils pour la collecte basée sur des événements.

Personnalisation du profil

Le profilage manuel offre le plus de personnalisation, tandis que ProfilingManager propose moins d'options de personnalisation.

Évolutivité

ProfilingManager est le meilleur moyen de faire évoluer le traçage, car il s'agit de la seule option qui permet aux développeurs d'applications d'enregistrer des profils auprès d'utilisateurs publics. Avec ProfilingManager, vous pouvez configurer la collecte et l'analyse de traces à grande échelle. Le profilage manuel est limité à une utilisation locale.