Aller au contenu

Trouver les fuites de mémoire

Répétez la navigation et repérez les objets conservés en mémoire au retour à la page de départ. Examinez l’accumulation observée dans le navigateur.

Fragment de rapport

Voir quel groupe croît entre les itérations

Exemple illustratif de navigation et de retour. Ces valeurs expliquent le rapport et ne sont pas les résultats de votre site.

Changement de route

/catalog → /product → /catalog × 5

La navigation est terminée, mais les objets d’état de la page précédente restent en mémoire. Leur nombre augmente à chaque répétition. Recherchez les références qui les conservent.

Modèles de vue de route Object
Avant → après
846 → 1451
Delta
+605
Delta / itération
+121
Set<observerTarget>
Avant → après
34 → 74
Delta
+40
Delta / itération
+8
mémoire native
Avant → après
41.2 → 54.7 MB
Delta
+13.5 MB
Delta / itération
+2.7 MB

Données illustratives pour expliquer le rapport. Les résultats de votre page apparaissent après analyse.

Comment ça marche

Nous répétons un scénario et comptons le delta entre les passes

Scénario

Choisir des liens sur la page

Le scanner trouve jusqu’à trois liens internes visibles. Il répète cinq fois chaque navigation et le retour à la page initiale.

Delta

Comparer la mémoire utilisée

Après un passage de préparation, nous mesurons la mémoire conservée après les navigations répétées. Cela révèle une accumulation invisible au premier chargement.

Groupes de croissance

Montrer ce qui s’accumule

Le rapport liste les collections, écouteurs d’événements, nœuds DOM et types d’objets qui augmentent. Pour les collections, il indique aussi les emplacements des modifications dans le code, si disponibles.

Modules d’analyse

Contenu du rapport sur les fuites de mémoire

Scénario

Scénario vérifié

Le rapport conserve l'URL, le chemin utilisateur vérifié, le nombre d'itérations et l'indicateur de fuite afin que le résultat puisse être reproduit.

fuiteURLitérations
Delta

Croissance totale de la mémoire

Comparez la croissance totale et la croissance par itération pour la même navigation. L'accumulation justifie d'examiner les objets conservés. Les caches intentionnels et l'état de l'application peuvent aussi occuper de la mémoire.

delta totalpar itérationstatistiques mémoire
Collections

Array, Map, Set, Object

Les collections en croissance sont listées séparément : taille avant et après, delta, delta par itération, et traces de pile là où la collection a changé.

MapObjecttrace de pile
Écouteurs

Écouteurs d'événements et nœuds

Le rapport indique le nombre d'écouteurs avant et après le scénario, le delta résultant, et les nœuds d'écouteurs fuyants lorsque les abonnements augmentent.

avant / aprèsdelta de nœudspar itér
DOM

Croissance des nœuds DOM

Le rapport indique la croissance des nœuds DOM et les descriptions des nœuds fuyants, ce qui facilite la détection d'un DOM détaché ou d'une initialisation répétée de l'interface.

nombre de nœudsdescriptiondétaché
Objets du tas

Types d'objets du tas

Pour les types d'objets en croissance, le rapport inclut le delta du nombre, le delta de taille, le delta de taille retenue et les valeurs par itération. Lorsque des données d'environnement existent, le tas total, natif et V8 sont affichés séparément.

delta du nombredelta de tailleretenue
FAQ

Questions fréquentes sur les fuites de mémoire

Réponses courtes sur le delta par itération, les collections en croissance, les écouteurs, les nœuds DOM et ce qu'il faut faire après le rapport.

Toute augmentation de mémoire est-elle une fuite ?
Non. Une application peut conserver des données encore nécessaires. Le scanner recherche une accumulation lors de navigations répétées, mais ignore les besoins de votre application. Vérifiez ce qui retient les objets et s’ils devraient être libérés au retour.
Que sont les nœuds DOM détachés ?
Ce sont des éléments retirés du document mais conservés en mémoire par des références JavaScript. Par exemple, une référence à une boîte de dialogue fermée peut subsister. Les descriptions des nœuds orientent la recherche ; vérifiez la référence dans le code.
La vérification peut-elle détecter les fuites d'écouteurs d'événements ?
Oui. Le rapport indique le nombre d'écouteurs avant et après, le delta total, le delta par itération et les nœuds d'écouteurs fuyants avec le delta du nombre de nœuds. Cela aide à distinguer un abonnement ponctuel des gestionnaires ajoutés à chaque répétition.
Quelles pages et actions le scanner vérifie-t-il ?
Le contrôle vise les SPA dont la navigation ne recharge pas toute la page. Le scanner choisit jusqu’à trois liens internes visibles et répète les allers-retours. Les formulaires, recherches et ouvertures de dialogues ne sont pas testés séparément. Sans lien adapté, le contrôle échoue ; cela ne signifie pas qu’il n’y a aucune fuite.
Que faire après avoir trouvé une fuite ?
Répétez la navigation indiquée et trouvez les objets conservés au retour. Examinez les modifications des collections, le retrait des écouteurs et les références aux éléments supprimés. Après correction, relancez le contrôle et comparez la même navigation.
Cookies

Nous utilisons des cookies

Nous utilisons des cookies pour vous offrir une meilleure expérience sur notre site. Vous pouvez en savoir plus sur notre utilisation des cookies dans notre politique de confidentialité.