Garbage collection

David Brown <>
Thu Sep 2 16:20:41 CEST 1999


>>>>> On Thu, 2 Sep 1999 11:22:52 +0200 (CEST), Klacke <> said:

> David Gould writes:
>> I might be interested in working on this. I am curious to know what has
>> prevented this in the past, 

> It's a bit hard, to make the gc non blocking ggc.c needs to rewritten
> into a reentrant collector. This is a bit hard and it also makes
> the collector a bit slower unless some real clever tricks are 
> applied.

> ...

I found a bunch of good papers on garbage collection (realtime as
well) on <ftp://ftp.cs.utexas.edu/pub/garbage/>.  One of the papers
discusses a real-time garbage collector that only needs to coordinate
with the "mutators" when the mutate memory.  We have a nice advantage
here that there isn't much mutation going on outside of making new
objects.

Their collector is single threaded, and single heaped.  Moving to this
model might help with efficiency, since we could avoid the copy when
sending local messages.  The collector just needs to be run
periodically (easy with an interpreter) and only needs to be informed
about mutations.  It also eliminates issues with allocation in a
process whose GC would be running.

The difficulty here is can we guarantee that a process can run that
needs to run.

I'll look around and figure out which article it actually is that
talks about it.

David Brown




More information about the erlang-questions mailing list