[Vm-dev] Why does updating the root table use a red zone?
andreas.raab at gmx.de
Sun Sep 2 19:28:18 UTC 2007
bryce at kampjes.demon.co.uk wrote:
> I'm not sure why noteAsRoot:headerLoc: uses a red zone. Why can't it
> just not update the root table? The root table is only used for
> incremental GCs and they will perform a full GC if the root table
> has overflowed?
Yes. But a root table overflow shouldn't trigger a full GC - it should
tenure. That's what the red zone achieves; If we hit the red zone we
force an IGC upon next allocation which will then tenure.
> I'm asking because I had a bug in Exupery's version of this which I
> fixed by setting allocationCount on root table overflow. This appears
> to work but is there a good reason for the logic that the interpreter
> uses now?
Yes. Avoiding excessive full GCs is a good reason.
More information about the Vm-dev