307 votes

Qu'est-ce que le garbage collection de JavaScript ?

Qu'est-ce que le garbage collection JavaScript ? Qu'est-ce qu'il est important pour un programmeur web de comprendre sur le garbage collection JavaScript, afin d'écrire un meilleur code ?

3 votes

1 votes

3voto

Dmitri Farkov Points 3743

Le garbage collection Javascript peut différer selon les implémentations des navigateurs, mais la base est la même.

  1. Toutes les variables définies dans la portée d'une fonction sont mises à la poubelle dès que l'exécution de la fonction est terminée.
  2. Aucune variable globale n'est recyclée, même si elle n'est utilisée par aucune fonction. Par conséquent, évitez-les comme la peste, elles ajoutent à la pollution de l'espace de noms.
  3. Les fonctions anonymes passées en argument, disparaissent au moment où elles sont exécutées.

C'est tout ce dont je me souviens pour l'instant.

1voto

dfa Points 54490

Qu'est-ce que le garbage collection de JavaScript ?

vérifier ce

Qu'est-ce qu'il est important pour un programmeur web de comprendre sur le garbage collection JavaScript, afin d'écrire un meilleur code ?

En Javascript, vous ne vous souciez pas de l'allocation et de la désallocation de la mémoire. Tout le problème est demandé à l'interpréteur Javascript. Les fuites sont toujours possibles en Javascript, mais ce sont des bugs de l'interpréteur. Si vous êtes intéressé par ce sujet, vous pouvez en lire plus dans www.memorymanagement.org

0 votes

Parmi les différents systèmes de gestion de la mémoire présentés dans l'article dont vous donnez le lien, lequel est utilisé par JavaScript ? "Les fuites sont toujours possibles en Javascript, mais ce sont des bugs de l'interpréteur". - Cela ne signifie pas que les programmeurs JS peuvent tout simplement ignorer le problème. Par exemple, il existe un problème de référence circulaire JS<->DOM bien connu dans les anciennes versions d'IE, que vous pouvez contourner dans votre code JS. De plus, la façon dont les fermetures JS fonctionnent est une caractéristique de conception, pas un bogue, mais vous pouvez immobiliser de plus gros morceaux de mémoire que prévu si vous utilisez les fermetures de façon "inappropriée" (je suis pas en disant de ne pas les utiliser).

3 votes

Les fuites de mémoire sont une bête en JavaScript. Si vous écrivez une simple application de type "projet universitaire", pas d'inquiétude. Mais lorsque vous commencez à écrire des applications d'entreprise très performantes, la gestion de la mémoire en JavaScript est indispensable.

1voto

powtac Points 18619

Sous Windows, vous pouvez utiliser Drip.exe pour trouver des fuites de mémoire ou vérifier si votre routine de mémoire libre fonctionne.

C'est très simple, il suffit d'entrer l'URL d'un site web et vous verrez la consommation de mémoire du moteur de rendu IE intégré. Si la mémoire augmente, vous avez trouvé une fuite de mémoire quelque part sur la page Web. Mais c'est aussi très utile pour voir si les routines pour libérer de la mémoire fonctionnent pour IE.

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