52 votes

Outils de débogage des fuites de mémoire dans le code JavaScript

J'ai un problème de fuite de mémoire dans une situation assez complexe JavaScript projet et j'espère qu'il y a des outils qui pourraient m'aider à identifier la cause du problème.

J'ai essayé Google Chrome developer tool onglet Profil, où je peux prendre des instantanés de la TAS et de la diff avec les instantanés (à vérifier http://www.youtube.com/GoogleDevelopers#p/c/B9EC47A6AAE4540F/1/OxW1dCjOstE pour un bon départ de cette fonctionnalité).

Je peux voir le mémoire de vidange avec cet outil, mais à partir de là je ne peux pas trouver un moyen de détecter où les références à mes objets sont conservés (probablement par des fermetures).

Ma question est: Quels outils utilisez-vous pour JavaScript fuite de mémoire de débogage? Est-il un outil qui pourrait me permettre de voir les références et un peu de code source de l'endroit où ils sont détenus?

34voto

bamana Points 1239

Je semble courir sur cette question souvent et de ne jamais vraiment avoir une grande réponse autre que la sélection intelligente des points d'arrêt dans votre code javascript. Parfois, il est un outil pour votre situation spécifique qui peut aider à trouver le problème, d'autres fois, pour moi, c'est un long processus pour trouver la fuite.

Voici une bonne liste de fuite d'outils pour le navigateur Mozilla. En outre, il ya des screencasts de comment utiliser les outils. En particulier, vous pouvez être intéressé dans la section sur "le Post-traitement des traces de pile" qu'il mentionne être en mesure d'obtenir de meilleurs symboles, et le nom de fichier/le numéro de ligne à partir d'une trace de la pile.

Si vous êtes ok à l'aide d'Internet Explorer sur Windows, voici un JavaScript Mémoire d'un Détecteur de Fuites qui peuvent se révéler utiles.

Enfin, j'ai trouvé ce bel outil sur github appelé MemoryLeakChecker après la lecture d'un post ici, qui ressemble pour les grandes structures de données et tente de vous aider à identifier où vous êtes une fuite de mémoire.

Espérons que cela aide, et laissez-moi savoir lequel (le cas échéant) jusqu'à la fin de vous aider. Désolé pour le manque de réels liens hypertexte, parce que j'ai moins de 10 réputation, maintenant, je ne peux pas les mettre tous dans le post.

6voto

Aaron Digulla Points 143830

Google a publié fuite-finder-pour-javascript qui vous aide à trouver les fuites après l'exécution du code dans Chrome.

0voto

Suresh Points 48

Check this -> http://ejohn.org/blog/deep-tracing-of-internet-explorer/ Il ne fonctionne que sur IE bien

Edit: Lien vers le produit -> http://ajax.dynatrace.com/ajax/en/

0voto

Ankit Jaiswal Points 6128

Jetez un oeil à https://addons.mozilla.org/en-US/firefox/addon/2490/ je n'ai pas essayé, mais il semble avoir de bonnes caractéristiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X