[gclist] taking bets on a new collector

David Gadbois gadbois@computer.org
Fri, 15 Aug 2003 10:06:10 -0500

> Date: Thu, 14 Aug 2003 11:40:44 -0700 (PDT)
> From: Tom Lord <lord@emf.net>
>   Memory is divided into aligned "pages", each page containing
>   256 pointer-sized words of memory management header, and
>   3840 words of object storage (for a total of 4096 words).
>   The page size could be multiplied by any power of 2, but it would
>   be difficult to make it smaller.

I highly recommend segregating the per-page meta information out in a way that 
is locality sensitive.  For example, keep the queue of MARKED pages separate so 
that the flip operation does not have to go back out and touch the scanned 
pages again.  

Also, if there is a way to put the GC bits in the objects themselves, that 
would lessen the likelyhood of having to read from two cache lines in the event 
of a write.  Though it is a tradeoff for a mark-and-sweep collector on write 
rate versus sweep rate.

Keeping the meta info separate would also greatly simplify the task of 
supporting objects bigger than 256 words:  You could interpose a layer of 
abstraction where the GC operates on regions of contiguous pages.

--David Gadbois