Série d'optimisation des performances iOS 06|La bonne façon d'utiliser les instruments
L'outil en lui-même n'est pas difficile. Ce qui est difficile, c'est de poser une question claire, plutôt que de regarder un tas d'images et de ne parvenir à aucune conclusion.
Lorsque je suis entré en contact avec Instruments pour la première fois, l’expérience était très similaire :
- Ouvrir l’outil
- Enregistrer un segment
- J’ai vu beaucoup de courbes et de délais
- Je pense qu’il y a beaucoup d’informations
- Mais au final, je n’arrive toujours pas à comprendre quel est le problème.
En apparence, cela semble être trop difficile pour Instruments, mais c’est en fait plus proche de la situation courante lorsque vous y entrez avec une question très vague.
L’utilisation véritablement efficace des Instruments a toujours été :
Posez une question suffisamment précise et laissez les outils vous aider à la préciser.
1. Les instruments ont le plus peur d’être considérés comme un « scanner universel »
Lorsque de nombreuses équipes ont des problèmes de performances, elles diront :
- Ouvrez Instruments et jetez un oeil
Cette phrase elle-même est correcte, mais sans la seconde moitié :
- Que veux-tu voir exactement ?
- Quelle hypothèse souhaitez-vous tester ?
- S’agit-il actuellement davantage d’un problème de processeur, de mémoire ou de thread principal ?
Ces instruments peuvent facilement devenir un « amplificateur d’information » :
- Beaucoup d’informations
- Beaucoup de photos
- Beaucoup de lignes
- mais pas de conclusion claire
Je préfère donc le considérer comme un « outil de validation et de restriction » plutôt que comme un « scanner qui donne automatiquement des réponses ».
2. S’il y a d’abord un problème, sélectionnez ensuite la page de l’outil, et non l’inverse.
Une séquence plus efficace est généralement :
- Déterminez d’abord à quel type de problème ressemble davantage le problème.
- Décidez quel type d’instruments ouvrir
Par exemple :
- Démarrage lent : plus soucieux de la répartition temporelle de la phase de démarrage
- Carte de liste : plus préoccupée par les problèmes liés au thread principal et au cadre
- Mémoire élevée : plus préoccupé par les objets et les tendances de changement de mémoire
- Chauffage et consommation électrique : plus préoccupé par l’activité du processeur à long terme et les tâches en arrière-plan
Si le problème n’a pas encore été classé, ouvrez simplement l’outil directement. Il est facile de voir tout comme un problème et, en fin de compte, rien ne peut être dit avec précision.
3. Les instruments ne présentent aucun avantage lors de leur utilisation. En apparence, il semble que cela ne puisse pas cliquer, mais en fait c’est plus proche du chemin « phénomène → hypothèse → vérification ».
Ce que j’utilise le plus souvent, c’est :
1. Enregistrez d’abord le phénomène
Par exemple :
- Retard évident lors du défilement rapide de la liste
- Il faut beaucoup de temps pour cliquer sur le premier écran de la page d’accueil
- La mémoire augmente de plus en plus après la saisie répétée d’une certaine page.
2. Faites une autre hypothèse provisoire
Par exemple :
- Il se peut que le fil conducteur soit occupé par le recalcul
- Il se peut que trop de travail soit effectué sur le chemin critique du premier écran
- Il se peut que l’objet ne soit pas libéré ou que le cache ne soit pas recyclé
3. Utilisez des instruments pour vérifier cette hypothèse
De cette façon, lorsque vous regardez l’image, vous ne vous contentez pas de « regarder le plaisir », mais vous répondez à une question spécifique.
4. La plus grande valeur des Instruments est de dire « sur quelle couche réside principalement le problème »
C’est très important.
Ce qui est le plus nécessaire au début de nombreux problèmes de performances, c’est de savoir d’abord :
- Principalement un problème de CPU
- Ou est-ce un problème de thread principal ?
- Ou est-ce un problème de mémoire ?
- Toujours un problème avec le lien de démarrage ?
Une fois que l’évaluation du niveau est correcte, les fouilles ultérieures seront beaucoup plus faciles. Je ne m’attends donc pas à ce qu’Instruments me donne directement la « réponse finale » du premier coup. J’espère que cela m’aidera à réduire considérablement la portée.
5. Un malentendu courant : se concentrer uniquement sur la valeur, pas sur le chemin de l’opération
Après l’enregistrement, certaines personnes prêteront une attention particulière à :
- Un certain nombre est-il élevé ?
- Est-ce qu’un certain sommet est beau ?
Ceux-ci valent certainement la peine d’être examinés, mais les chiffres eux-mêmes peuvent facilement perdre leur contexte lorsqu’ils sont sortis de leur contexte.
Par exemple, vous devez également savoir :
- Après quelle opération ce pic est-il survenu ?
- S’agit-il d’un démarrage à froid, d’un défilement, d’une coupure de page ou d’un retour au premier plan ?
- Qu’a fait exactement l’utilisateur lorsque le problème est survenu ?
Étant donné que les problèmes de performances ne sont pas des problèmes statiques, ils sont toujours liés à un certain chemin.
6. Une méthode mentale plus proche du combat réel
Si je devais le résumer avec des mots simples, je dirais :
- Ne viens pas juste voir tout.
- Décidez d’abord de ce qui doit être vérifié
- Trouvez d’abord « où se situe le problème principal »
- Puis creusez plus profondément à ce niveau
Autrement dit, Instruments ressemble plus à :
- une loupe
- Localisateur
Plutôt qu’un assistant intelligent qui « indiquera automatiquement la cause première lorsque vous l’ouvrirez ».
7. Conclusion : Si vous savez utiliser les instruments, vous poserez des questions.
Pour le dire sous une forme plus courte, je dirais :
Le principe selon lequel Instruments est vraiment utile est d’aborder un problème suffisamment spécifique et de laisser les outils aider à vérifier ou à affiner le problème.
Une fois que vous avez réussi cette séquence, elle peut être incroyablement précieuse ; Si l’ordre est erroné, cela peut facilement devenir “regarder un tas de photos, mais au final rien n’est arrivé”.
What to read next
Want more posts about iOS Performance Optimization?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home