J'ai une question concernant les déchets-collecte dans google chrome (Version 20.0.1132.47, Ubuntu 11.04 64 bits).
Tout en comparant les tas de détritus et de vérification pour la mémoire des fuites, j'ai découvert certains cas, qui ne sont jamais nettoyés. Normalement, ce comportement peut être traqué à un programmeur d'erreur, mais dans ce cas je suis un peu paumé..
Jetez un oeil à la capture d'écran suivante
L'instance 'enfant @610739" est référencé que par des " bound_this instances qui appartiennent à des fonctions de l'enfant-de l'instance elle-même. Donc, pour ma compréhension, l'enfant-instance doit être récupérées, comme la seule autre référence en gardant la main est l'enfant de l'instance elle-même (à travers le " bound_this fonctions).
Je suis à l'aide d'underscore.js' 'bindAll' la fonction d'utilité (trait de soulignement.js#bindAll) qui correspond à la " native_bind fonction de chrome (ECMA Script wiki sur bound_this)
Ai-je raté quelque chose d'évident ici et si oui, quelqu'un pourrait-il expliquer ce qu'est le maintien de ces instances en vie?
Mise à JOUR:
Dans le même temps, j'ai testé la même application dans chrominium (18.0.1025.168 (Développeur pour Construire 134367 Linux) Ubuntu 11.10) qui ne montre pas ces balançant les instances..
Mise à JOUR 2:
Suivant Esailijas astuce pour fournir un jsfiddle extrait de code, j'ai créé un (http://jsfiddle.net/8gSTR/1/) qui imite ce que je suis fondamentalement en train de faire. L'exécution de ce violon, malheureusement, ne montre pas les débordements, je suis en train de vivre dans mon application. Un tas de vidage prises alors que " a " -les instances sont encore référencés ressemble un peu semblable, mais en dépit de la référence à partir de la fenêtre.o tableau qui garde les instances vivant:
Comme cette référence ne figure pas dans mon cas (capture d'écran 1) je ne sais pas ce qui empêche de chrome de la libération de ces instances...
Mise à JOUR 3:
Suivi loislos des conseils pour activer les propriétés cachées. Le résultat (avec l'une des branches élargi) peut être vu dans la capture d'écran suivante, mais il ne me prendra pas plus loin.