[gclist] taking bets on a new collector
Fri, 15 Aug 2003 10:06:10 -0500
> Date: Thu, 14 Aug 2003 11:40:44 -0700 (PDT)
> From: Tom Lord <firstname.lastname@example.org>
> 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
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.