Back home

Série d'optimisation des performances iOS 02|Le point de départ du dépannage des performances iOS : décalage, démarrage lent, mémoire élevée et batterie élevée

Il est plus efficace de localiser d'abord le type de problème, puis de décider des outils et des voies d'analyse que de lancer un dépannage complet.

Lorsque de nombreuses équipes évoquent le dépannage des performances, leur première réaction est d’« ouvrir Instruments ». C’est certainement vrai, mais si vous ne distinguez même pas le type de problème au préalable, vous pouvez facilement tomber dans un état plus tard :

  • J’ai regardé beaucoup de photos
  • J’ai aussi enregistré un tas d’indicateurs
  • Mais je n’arrive toujours pas à dire où se situe le problème principal

La première étape sur laquelle je insiste est donc toujours la classification.

En raison des différents types de problèmes de performances, les méthodes de dépannage sont complètement différentes. Si vous allez dans la mauvaise direction au début, plus vous disposerez d’outils par la suite, plus il vous sera facile de vous laisser submerger par l’information.

1. Demandez d’abord clairement : de quoi se plaignent exactement les utilisateurs ?

Cette étape semble basique, mais c’est là que de nombreux dépannages échouent.

Vous devez d’abord essayer de traduire la question en mots plus spécifiques, plutôt qu’en un message général : “L’application est un peu lente”.

Par exemple :

  • Est-ce lent à démarrer à froid ou à chaud ?
  • Une certaine page s’ouvre-t-elle lentement ou l’ensemble de l’application est-il lent ?
  • Le défilement est-il bloqué ou la réponse est-elle lente après avoir cliqué ?
  • Est-ce qu’il se bloque de plus en plus après une utilisation prolongée, ou est-ce qu’il se bloque dès qu’il est allumé ?
  • S’agit-il d’une fièvre importante ou d’une consommation électrique anormale ?

Une fois le problème précisé, la portée de l’analyse sera considérablement réduite.

2. Un démarrage lent, un retard, une mémoire élevée et une batterie élevée sont à l’origine quatre chemins de dépannage différents.

Bien qu’ils soient tous appelés « problèmes de performances », lorsqu’il s’agit de dépannage, ils doivent être traités comme quatre types différents de problèmes.

1. Démarrage lent

Vous devriez prêter plus d’attention à :

  • Le démarrage à froid et le démarrage à chaud sont-ils lents ?
  • Ce que fait le thread principal pendant la phase de démarrage
  • Est-ce que trop d’initialisation est effectuée avant le rendu de la page d’accueil ?
  • Les tâches non critiques ont-elles été placées sur le chemin critique ?

2. Bégaiements/images perdues

Vous devriez prêter plus d’attention à :

  • Que fait le thread principal au moment des pertes d’images
  • S’agit-il d’une mise en page, d’un dessin, d’un décodage, d’un traitement de données ou d’un trop grand nombre de mises à jour de statut ?
  • Qu’il apparaisse uniquement sur des pages spécifiques ou des listes spécifiques

3. Mémoire élevée

Vous devriez prêter plus d’attention à :

  • S’agit-il d’un sommet élevé ou d’un sommet à long terme qui ne retombera pas ? -S’agit-il d’une image, d’un cache, d’une fuite d’objet ou d’un objet volumineux conservé trop longtemps ?
  • Si le problème se produit après un chemin de fonction spécifique

4. Batterie/chaleur élevée

Vous devriez prêter plus d’attention à :

  • Y a-t-il trop de tâches en arrière-plan ?
  • Si les requêtes d’interrogation, de positionnement et de réseau sont trop fréquentes
  • Si le CPU est continuellement occupé -Si certaines pages ont des actualisations non valides ou des tâches actives à long terme

Différents types de problèmes doivent être abordés sous différents angles. Les mélanger ne mènera qu’à beaucoup d’informations en même temps, mais pas de véritable conclusion.

3. Si le problème ne peut pas être reproduit de manière stable, ne vous précipitez pas pour creuser plus profondément.

C’est l’étape que de nombreuses équipes ont tendance à sauter.

Si un problème persiste dans cet état :

  • “Parfois, ça peut être lent”
  • “Parfois coincé”
  • “Un camarade de classe a dit que son téléphone portable était chaud”

Le plus important à ce stade est de rendre les conditions de récidive aussi précises que possible :

  • quel appareil
  • Quelle version du système
  • Quel mode opératoire
  • Démarrage à froid ou démarrage à chaud
  • Le Wi-Fi est encore faible
  • Connexion ou mode invité

Parce que la plus grande crainte en matière de dépannage de performances est de brouiller les limites des problèmes. Sans chemin de reproduction stable, toutes les analyses ultérieures dériveront facilement.

4. Je préfère d’abord restreindre la portée plutôt que de poursuivre une explication complète.

Une situation courante est que lors du dépannage des performances, vous souhaiterez « expliquer l’ensemble du problème en détail » dès le début. Mais dans le travail réel, une méthode plus efficace est généralement divisée en deux étapes :

Première étape : affiner la portée

Voyons d’abord où se situe le problème :

  • démarrer le lien
  • une certaine page
  • une liste
  • une certaine scène d’image
  • une tâche en arrière-plan

Deuxième étape : Creusement ciblé en profondeur

Après avoir réduit la portée, utilisez des outils et des données plus spécifiques pour identifier les goulots d’étranglement.

La valeur de cette séquence est : Construisez d’abord une « carte des problèmes » au lieu de chercher aveuglément des réponses dans des indicateurs massifs.

5. Un jugement très pratique : S’agit-il d’un « problème de chemin critique » ou d’un « problème d’accumulation à long terme »

Ces deux types sont souvent mélangés, mais la logique de dépannage est différente.

Problèmes de chemin critique

Par exemple :

  • Démarrage lent à froid
  • La page s’ouvre lentement
  • Réponse lente après avoir cliqué

Ce type de problème ressemble plus à « trop de travail est fait à un certain moment », et ce qu’il faut trouver, c’est le goulot d’étranglement au moment critique.

Problème d’accumulation à long terme

Par exemple :

  • Il devient de plus en plus coincé après une utilisation prolongée.
  • La mémoire est de plus en plus élevée
  • La batterie continue d’être haute

Ce type de problème ressemble davantage à « la stratégie de fonctionnement à long terme du système est malsaine ». Ce qu’il faut rechercher, ce sont les problèmes de coûts cumulés et de cycle de vie.

Cette distinction est très pratique, car elle déterminera directement s’il faut se concentrer sur un processus instantané ou observer la tendance sur une période de temps.

6. Malentendus courants : tirer des conclusions avant de classer les types

Il est facile de porter ces jugements prématurés lors du dépannage des performances :

  • “Ça doit être un problème d’image”
  • “Cela devrait être la faute de SwiftUI”
  • “Cela ressemble à une fuite de mémoire”

Ces suppositions sont parfois correctes, mais si vous tirez des conclusions trop tôt, il est facile pour l’analyse ultérieure de s’articuler autour d’une seule hypothèse.

Je préfère donc répondre en premier :

  • De quel genre de problème s’agit-il ?
  • Sur quel chemin cela se produit-il ?
  • Quelles sont les conditions de récidive ?
  • Est-ce sporadique ou stable ?

Il est plus important de classer correctement le problème que d’en deviner la raison.

7. Une séquence de départ plus proche du combat réel

Si quelqu’un me posait une question de performance aujourd’hui, je commencerais généralement par cette séquence :

  1. Interrogez clairement sur le phénomène perçu par l’utilisateur.
  2. Déterminez s’il s’agit du démarrage, du retard, de la mémoire ou de la batterie.
  3. Confirmez s’il peut être reproduit de manière stable.
  4. Confirmez si le problème est concentré sur une certaine page ou un certain chemin.
  5. Décidez quel outil utiliser ensuite.

Cette séquence semble très simple, mais elle peut réduire considérablement la situation de « l’outil est beaucoup ouvert, mais la direction n’est toujours pas claire ».

8. Conclusion : divisez d’abord le problème puis utilisez des outils, l’efficacité sera bien plus élevée

Pour le dire sous une forme plus courte, je dirais :

La première étape la plus importante dans le dépannage des performances iOS consiste d’abord à diviser les problèmes en différents types tels que « démarrage lent, décalage, mémoire élevée et batterie élevée », puis à décider du chemin d’analyse.

Car une fois que les problèmes de performances ne sont pas classés en premier, quelle que soit la quantité d’informations qui arrive plus tard, il sera difficile de se rapprocher vraiment de la réponse.

FAQ

What to read next

Related

Continue reading