[Gc] Generational collection performance disaster

Ralph Becket rafe at cs.mu.OZ.AU
Thu Apr 14 17:50:24 PDT 2005


Sorry about the delay in replying - hunting other bugs down is taking
precedence at the moment.

Boehm, Hans, Thursday,  7 April 2005:
> > 
> > I've wondered whether it might be worth managing generations 
> > on a per-page basis rather than an per-object basis.
> Is this different from a combination of:
> 
> (1) restricting allocation to a limited number of "young" pages
> in the current scheme, and
> (2) avoiding immediate promotion after surviving only a single GC?

That's pretty much what I had in mind, although, given that you can't
move objects around, I was thinking that the "youth" of a page should be
defined as a function of both the amount of time since it was touched by
the collector and the number of free cells contained therein.

> There seems to be an inherent
> tension between keeping occupancy low, and reusing pages,
> at least if you can't copy.  And if you fail to keep occupancy low,
> you still end up with a lot of "dirty" objects that you need to scan,
> though perhaps not in your case, with the trick of viewing directly
> referenced objects as dirty.

If the collector could be sped up by assuming objects to be immutable
by default then we would benefit from that.

> (Currently I think I dirty the whole page for directly referenced
> objects.  But that could perhaps be avoided.)

It would be an interesting experiment.

Thanks again for the detailed responses.

-- Ralph


More information about the Gc mailing list