Utiliser l'outil de profilage d'allocation

Meggin Kearney
Meggin Kearney

Utilisez l'outil de profilage d'allocation pour rechercher les objets qui ne sont pas correctement récupérés et continuer à conserver de la mémoire.

Fonctionnement de l'outil

Le profileur d'allocation combine les informations d'instantané détaillées du profileur de tas de mémoire avec la mise à jour et le suivi incrémentiels du panneau de chronologie. Comme pour ces outils, le suivi de l'allocation de segments de mémoire implique de démarrer un enregistrement, d'exécuter une séquence d'actions, puis d'arrêter l'enregistrement pour analyse.

L'outil prend régulièrement des instantanés de tas de mémoire tout au long de l'enregistrement (à une fréquence de 50 ms) et un instantané final à la fin de l'enregistrement.

Profileur d'allocation

Activer le profileur d'allocation

Pour commencer à utiliser le profileur d'allocation:

  1. Assurez-vous d'utiliser la dernière version de Chrome Canary.
  2. Ouvrez les outils de développement, puis cliquez sur l'icône en forme de roue dentée en bas à droite.
  3. Ouvrez maintenant le panneau du profileur. Vous devriez voir un profil appelé "Record Heap Allocations" (Enregistrer des allocations de tas de mémoire).

Profileur d'allocations de segments 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 du haut indiquent les nouveaux objets détectés dans le tas de mémoire.

La hauteur de chaque barre correspond à la taille des objets récemment alloués, et la couleur des barres indique si ces objets sont toujours actifs ou non dans l'instantané final du tas de mémoire. Les barres bleues indiquent les objets qui sont toujours actifs à la fin de la chronologie, tandis que les barres grises indiquent les objets qui ont été alloués pendant la chronologie, mais qui ont depuis fait l'objet d'une récupération de mémoire:

Instantané du profileur d'allocation

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. Mais la barre bleue la plus à gauche indique un problème potentiel.

Vous pouvez ensuite utiliser les curseurs de la chronologie ci-dessus pour faire un zoom avant sur cet instantané particulier et voir les objets récemment alloués à ce stade:

Faire un zoom avant sur l'instantané

Cliquez sur un objet spécifique dans le 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 vers l'objet devrait 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 Examiner l'allocation de mémoire par fonction.