Utilisez l'outil de profilage d'allocation pour rechercher les objets qui ne sont pas correctement récupérés et continuer à conserver la mémoire.
Fonctionnement de l'outil
Le profileur d'allocation combine les informations d'instantané détaillées du profileur de tas avec les mises à jour et le suivi incrémentiels du panneau Timeline. Comme pour ces outils, l'allocation de segments de mémoire pour les objets implique le démarrage d'un enregistrement, l'exécution d'une séquence d'actions, puis l'arrêt de l'enregistrement pour analyse.
L'outil prend régulièrement des instantanés de tas de mémoire tout au long de l'enregistrement (toutes les 50 ms !) et un instantané final à la fin de l'enregistrement.
Activer le profileur d'allocations
Pour commencer à utiliser le profileur d'allocation:
- Assurez-vous que vous disposez de la dernière version de Chrome Canary.
- Ouvrez les outils de développement et cliquez sur l'icône en forme de roue dentée en bas à droite.
- Ouvrez maintenant le panneau Profiler. Vous devriez voir un profil appelé "Record Heap Allocations" (Enregistrer des allocations de tas de mémoire).
Lire un profil d'allocation de segments de mémoire
Le profil d'allocation de segments de mémoire indique où les objets sont créés et identifie le chemin de conservation. Dans l'instantané ci-dessous, les barres situées en haut de l'écran indiquent que de nouveaux objets sont détectés dans le tas de mémoire.
La hauteur de chaque barre correspond à la taille des objets récemment alloués. La couleur des barres indique si ces objets sont toujours actifs dans l'instantané final du segment de mémoire. Les barres bleues indiquent les objets qui sont toujours actifs à la fin de la timeline, les barres grises indiquent les objets qui ont été alloués pendant la timeline, mais qui ont depuis été récupérés:
Dans l'instantané ci-dessous, une action a été effectuée 10 fois. L'exemple de programme met en cache cinq objets. Les cinq dernières barres bleues sont donc attendues. Toutefois, la barre bleue la plus à gauche indique un problème potentiel.
Vous pouvez ensuite utiliser les curseurs de la chronologie ci-dessus pour zoomer sur cet instantané spécifique et voir les objets récemment alloués à ce moment-là:
Cliquez sur un objet spécifique du tas de mémoire pour afficher son arborescence de conservation dans la partie inférieure de l'instantané du tas de mémoire. L'examen du chemin de conservation de l'objet doit vous fournir suffisamment d'informations pour comprendre pourquoi l'objet n'a pas été collecté. Vous pouvez également apporter les modifications de code nécessaires pour supprimer la référence inutile.
Afficher l'allocation de mémoire par fonction
Vous pouvez également afficher l'allocation de mémoire par fonction JavaScript. Pour en savoir plus, consultez la section Analyser l'allocation de mémoire par fonction.