[Gc] Generational collection performance disaster
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.
More information about the Gc