[Gc] Re: Understanding why GC'ing increases to the double in time?

Martin Egholm Nielsen martin at egholm-nielsen.dk
Mon Feb 13 02:01:25 PST 2006


>> Some sort of profile would also be useful.  But I'm not sure my earlier
>> suggestion was helpful.  The collector is almost certainly spending it's
>> time in mark_from.  It would be mildly useful to confirm that.  It would
>> be more useful to confirm that this is not being called through the
>> finalization code.
> 
> Still not had the time to progress within this field - stuck with the 
> heap fragmentation (but now I'm getting rid of all the large memory 
> allocations, and boiling them down to 10-20 kb allocations... Hopefully 
> that'll do it for now...)
> 
> But nevertheless, I've been thinking about this world stopped thing.
> Not having examined in details where I actually spent my world-stopped 
> time, I can easily imagine this idea being pure giberish, but here goes:
> Would it be possible (with a reasonable amount of hacking, that is), to 
> measure the time spent in "mark_from" (if this is where time is spent), 
> and then return if more than X ms has passed, and the resume from that 
> point(er) the next time there is time. And perhaps to make a full 
> collect every 20'th time.
> In order not to spent all the time looking up time-spent, this could be 
> flavoured with a couple of training runs perhaps learning how many 
> cycles of the for-loops can be finished before actually checking 
> time-spent...
> 
> I know this is an extreme embedded-tailoring of the GC, but is it at all 
> possible to do?
Ok, I take the screaming silence as "No" :-)

> Perhaps it would never work since the "reference counting" phase will 
> never complete, hence not knowing if any segment can be released...



More information about the Gc mailing list