[Squeak-fr] Que se passe-t-il lorsque la reference d'un objet est perdue ?

stéphane ducasse ducasse at iam.unibe.ch
Lun 20 Sep 08:25:06 CEST 2004


On 19 sept. 04, at 22:35, Hilaire Fernandes wrote:

> Salut,
>
> Je suppose que c'est le ramasse miette qui fait un nétoyage.
>
> Dans un collection je référence des instances de classe, Si je décide
> d'enlever une de ses instance de la collection et que celle-ci n'est 
> pas
> référencée ailleurs, je suppose que cela est netoyé du système.

oui


> Maintenant si l'instance en question est aussi référencée dans une
> instance de classe, le 'reference count' est incrémenté.

Il y a different system de GC, le reference counting est le plus vieux.
Je ne me rappele plus celui utilisé par Squeak (tu peux trouver de la 
doc dans le nouveau blue book cf ma page)
En fait le probleme avec le reference counting seul est que tu peux 
avoir une structure pointant sur elle-meme.
donc a cela ils ajoutent un generation scavenging: l'idee etant que les 
objets jeunes meurent souvent et que ce qui resistent deviennent 
"vieux" et donc passent dans un autre zone memoire (ils sont tenured).

> Est-ce qu'il
> existe une méthode particulière pour connaître le référence count d'une
> instance particuliere ? Histoire de vérifier ce qui se passe.

Non normalement non.
Par contre tu peux utiliser des weakcontainer si tu ne veux pas que le 
fait que ta collection
est un pointeur sur un objet empeche cet objet d'etre gced.

PS le GC a existe avant Smalltalk en Lisp


>
> Hilaire
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr



Plus d'informations sur la liste de diffusion Squeak-fr