SDK iOS profilage du temps avec des instruments

Instruments est un excellent outil fourni par Apple pour permettre aux développeurs de perfectionner leurs applications pour obtenir les meilleures performances. Bien qu'incroyablement utiles, de nombreux développeurs évitent l'application, de peur de ne pas connaître tous les détails de ses fonctionnalités. Aujourd'hui, j'ai quelques astuces rapides que vous pouvez utiliser dans certains cas très élémentaires d'utilisation d'Instruments. Plongeons dedans!


Le profileur de temps

Lorsque vous naviguez dans votre application, vous remarquerez peut-être certains délais que vous souhaitez réduire pour optimiser l'expérience utilisateur. Si vous souhaitez savoir où l'OS passe du temps lorsque vous utilisez une application, alors Time Profiler est fait pour vous. Le profileur de temps est l’endroit où la plupart des développeurs obtiennent la valeur la plus rapide d’Instruments. Nous allons donc concentrer nos conseils sur cet outil, même si beaucoup s’appliquent également aux autres outils. Pour commencer, vous allez ouvrir Instruments et être accueilli avec ce menu:

Comme vous pouvez le deviner, nous allons sélectionner le profileur de temps. Pour que cela vous donne des informations précieuses, vous devez exécuter votre application sur votre appareil. Lorsque votre application est en cours d'exécution, vous devez cliquer sur le champ "Tous les processus" dans le coin supérieur droit. Ensuite, sélectionnez l'application spécifique que vous voulez Time Profile.

Ceci fait, nous pouvons commencer nos tests de profil temporel en appuyant sur le bouton d’enregistrement. Cela lancera l'application sur le téléphone et vous commencerez à établir un profil horaire. Appuyez sur votre application et utilisez-la, vous verrez une pile croissante de classes, de symboles et d'adresses de mémoire. Un peu difficile à faire la tête ou la queue, hein? Rendons ces données un peu plus claires.


Astuce 1: Configurer les préférences du profileur

Vous allez vouloir modifier certains paramètres de "Call Tree" sur le côté gauche d'Instruments. Cela rendra les instruments beaucoup plus clairs à lire.

Vous devez d'abord désactiver l'inversion de l'arborescence des appels et lui demander ensuite d'afficher l'objectif C uniquement. Pour la plupart des projets, ce sera la vue la plus productive de vos données. Ceci fait, Instruments vous présentera un aperçu des différentes opérations effectuées dans votre application, ainsi qu'un pourcentage du temps consacré à la gestion de chaque processus. Si vous souhaitez accélérer votre application, vous pouvez suivre les pourcentages élevés jusqu'à vos classes spécifiques. Pour mon test, je constate que l’essentiel de mon temps est consacré à ma méthode SignatureViewCell touchesMoved: withEvent:. Si je voulais trouver des endroits à optimiser, ce serait le meilleur endroit où chercher. Double-cliquer sur une ligne vous amènera même au code spécifique auquel elle fait référence:

Nous savons maintenant comment analyser les rapports de Time Profiler et en tirer des enseignements. Mais comment pouvons-nous mieux comprendre le moment où certaines opérations se déroulent pendant notre test? Eh bien, Instruments vous permet de "marquer" lorsque vous appuyez sur votre appareil pour marquer le moment où vous avez effectué certaines activités..


Astuce 2: Ajout de drapeaux de la timeline

Lorsque vous utilisez votre application et que Time Profiler enregistre, vous pouvez conserver option et cliquer sur les graduations juste au-dessus de la chronologie. Cela ajoutera des indicateurs utilisateur où vous pourrez annoter les actions que vous faisiez à ce moment-là pendant l'enregistrement. Cela vous sera utile lorsque vous essayez de vous concentrer sur une transition, une animation ou une autre opération spécifique au moment de l'exécution..

Tout cela est donc formidable, mais qu’en est-il de se concentrer sur une petite partie de cette exécution? Si je voulais me concentrer sur une seule animation, il serait difficile de faire en sorte que les instruments se concentrent là-dessus. Heureusement, cette fonctionnalité est également fournie.


Astuce 3: Définir une fenêtre de mise au point

Instruments vous permet de vous concentrer sur certaines périodes ou opérations pour obtenir des rapports de chronométrage de résolution supérieure. Si vous souhaitez "zoomer" sur une opération spécifique, vous pouvez cliquer sur la flèche à côté de celle-ci. Les pourcentages associés aux opérations ne seront plus basés que sur cette opération parente et ses enfants. Ceci est vraiment utile lorsque vous vous concentrez sur les fonctionnalités d'un seul contrôleur de vue. L'autre façon de se concentrer consiste à sélectionner une certaine fenêtre temporelle sur laquelle vous souhaitez effectuer une enquête. Pour ce faire, maintenez l'option sur la chronologie du profileur temporel, puis cliquez et faites glisser la zone d'intérêt. Cela filtrera l’arborescence des appels pour n’afficher que les opérations effectuées pendant cette période. Ceci, associé aux indicateurs utilisateur, peut vous aider à aller rapidement au cœur d'un problème..