[Pharo-project] [Ann] Ephemerons for Cog

Andres Valloud avalloud at smalltalk.comcastbiz.net
Wed May 25 09:42:35 CEST 2011


In VisualWorks, the place where objects that are likely never garbage 
live is called perm space.  You get a GC speedup roughly proportional to 
the fraction of the image that is perm space (because you don't have to 
scan it or mark it), as long as the GC is not global (i.e.: when you 
also want to get rid of perm space garbage).

On 5/24/11 7:29 , Igor Stasenko wrote:
> On 24 May 2011 15:20, Toon Verwaest<toon.verwaest at gmail.com>  wrote:
>> On 05/24/2011 02:57 PM, Igor Stasenko wrote:
>>>
>>> On 24 May 2011 14:46, Chris Cunnington<smalltalktelevision at gmail.com>
>>>   wrote:
>>>>
>>>> "But if the dependents are stored in some global dictionary from model to
>>>> sequence of dependents then the
>>>> reference from the global dictionary keeps both the model and the
>>>> dependents
>>>> alive."
>>>>
>>>> When I hear "global dictionary" I think of a namespace. Perhaps
>>>> namespaces
>>>> could add efficiency to the GC.
>>>>
>>> I don't see how this could improve anything.
>>> During full GC, it has to mark all reachable objects, because those
>>> which won't be marked will be reclaimed.
>>>
>>> So, how presence of namespaces could make GC faster?
>>
>> If you know up-front that the namespace doesn't disappear, you could
>> separate those objects from the rest of the objects (in a separate heap) and
>> avoid marking/sweeping altogether. Basically a multi-heap generational GC;
>> with namespaces rather than just generations based on age.
>> Pointers going from one heap to another would have to go over a handle
>> table, as is usual...
>>
>
> Yes. Object spaces with gates between them.
>
> But this is orthogonal to Ephemerons.
>
>



More information about the Pharo-project mailing list