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