GC -- some explanations.

Francois-Rene Rideau rideau@ens.fr
Mon, 15 Apr 1996 00:55:03 +0200 (MET DST)


>[One a many-heap Copying GC system,
>only space the largest heap needs be reserved]
   I wish that'd be true.
However, in the case there be circular references *accross* heaps,
major GCs (not the usual ones, but eventual ones),
would have to be done *simultaneously*.
Surely, such major GCs seldom need be done,
but they must be done sometimes.
Thus, either swap space must be reserved for all target heaps,
or the major GC must be done with a mark&sweep algorithm
that doesn't need a target space.
I favor the last solution, if only it doesn't impose too harsh constraints
on the heap (that would have to prepared for double GC).
Please also note that a copying GC thread does need stack space proportional
to the longest pointer chain in addition to space equivalent
to the total allocated space,
while a mark&sweep GC rather needs an additional field in each object,
or equivalently space proportional to the number of objects allocated.

-- Fare'