When exactly an object gets deleted from the system ?
I am wondering when an instance of a class is garbage collected and deleted from the system. is there a way to manually deleted it ?
Hi,
On 30 Nov 2015, at 11:40, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
I am wondering when an instance of a class is garbage collected and deleted from the system.
is there a way to manually deleted it ?
no, that beats the purpose of a garbage collector. but⦠it should be cleaned quite fast, if it is not, most probably you are keeping a reference somewhere. Esteban
Le 30/11/2015 11:40, Dimitris Chloupis a écrit :
I am wondering when an instance of a class is garbage collected and deleted from the system.
is there a way to manually deleted it ?
If there is no Object that reference your object you can force a Garbage collect with "Smalltalk garbageCollect". If your object is still here you can try to see what point to it with "(X allInstances collectAsSet: #pointersTo) inspect". When the reference is spotted you can try to remove it then garbage collect again. -- Cyril Ferlicot http://www.synectique.eu 165 Avenue Bretagne Lille 59000 France
On 30 Nov 2015, at 11:55, Ferlicot D. Cyril <cyril.ferlicot@gmail.com> wrote:
Le 30/11/2015 11:40, Dimitris Chloupis a écrit :
I am wondering when an instance of a class is garbage collected and deleted from the system.
is there a way to manually deleted it ?
If there is no Object that reference your object you can force a Garbage collect with "Smalltalk garbageCollect". If your object is still here you can try to see what point to it with "(X allInstances collectAsSet: #pointersTo) inspect".
When the reference is spotted you can try to remove it then garbage collect again.
forcing a garbage collection is not a recommended procedure. Of course you can do it while testing/developing/etc., but you must not use it as a part of your code :) Esteban
-- Cyril Ferlicot
165 Avenue Bretagne Lille 59000 France
and of course you are both correct , I have a circular reference, basically an object A referencing object B which references object A. No wonder why is not gc. Thanks for helping me out spotting this. On Mon, Nov 30, 2015 at 12:56 PM Ferlicot D. Cyril <cyril.ferlicot@gmail.com> wrote:
Le 30/11/2015 11:40, Dimitris Chloupis a écrit :
I am wondering when an instance of a class is garbage collected and deleted from the system.
is there a way to manually deleted it ?
If there is no Object that reference your object you can force a Garbage collect with "Smalltalk garbageCollect". If your object is still here you can try to see what point to it with "(X allInstances collectAsSet: #pointersTo) inspect".
When the reference is spotted you can try to remove it then garbage collect again.
-- Cyril Ferlicot
165 Avenue Bretagne Lille 59000 France
GC handles circular dependencies. So you should have an extra pointer pointing to one of your circular elements. Le 30/11/15 12:22, Dimitris Chloupis a écrit :
and of course you are both correct , I have a circular reference, basically an object A referencing object B which references object A. No wonder why is not gc. Thanks for helping me out spotting this.
On Mon, Nov 30, 2015 at 12:56 PM Ferlicot D. Cyril <cyril.ferlicot@gmail.com <mailto:cyril.ferlicot@gmail.com>> wrote:
Le 30/11/2015 11:40, Dimitris Chloupis a écrit : > I am wondering when an instance of a class is garbage collected and > deleted from the system. > > is there a way to manually deleted it ?
If there is no Object that reference your object you can force a Garbage collect with "Smalltalk garbageCollect". If your object is still here you can try to see what point to it with "(X allInstances collectAsSet: #pointersTo) inspect".
When the reference is spotted you can try to remove it then garbage collect again.
-- Cyril Ferlicot
165 Avenue Bretagne Lille 59000 France
participants (4)
-
Dimitris Chloupis -
Esteban Lorenzano -
Ferlicot D. Cyril -
stepharo