Real Time GC

ET emergent@eval-apply.com
Sat, 7 Jun 1997 09:02:44 -0400


The lisp machine suffered from problems with real-time GC.

1.  The time required to incrementally scavenge wasn't really
     bounded.  Arrays needed to be scavenged atomically, and
     they have no bound on their size (well, they did have to fit
     in virtual memory, but that's not what we're talking about).

2.  The ``bounded time'' was limited by disk speed.  Often the
     object being scavenged was on the disk, and disk latency
     needed to be added in to that bounded time.  This makes
     the bounded time rather long.

3.  The performance of the machine degraded considerably
     during incremental scavenging.  You couldn't depend upon
     any intuition about how quickly a process could respond to
     a real-time problem during an incremental GC.  It may have
     been real-time, but it wasn't real-short-time.

4.  Generational scavenging, while not real-time, appears to perform
    better.

Do modern real-time GC's suffer these same problems?  I would think
the replicating GC would work nicely.
				~jrm