[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
> 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