[Squeak-fr] Que se passe-t-il lorsque la reference d'un objet est
perdue ?
Romain Robbes
rrobbes at info.unicaen.fr
Lun 20 Sep 10:14:52 CEST 2004
>
>
>> 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.
Il y a une méthode qui scanne toute l'image (donc très lente, pas
vraiment utilisable dans du code)
et retourne tous les pointeurs vers un objet :
SystemDictionary>>pointersTo: anObject
par exemple Smalltalk pointersTo: Smalltalk me retourne un Array de
1806 éléments
>
> 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
>
> _______________________________________________
> 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