[CM] Documentation about the garbage collector used by Snd-rt.

Kjetil S. Matheussen k.s.matheussen at notam02.no
Tue May 19 05:51:29 PDT 2009


Here is my paper for icmc 2009:

It documents the garbage collector used in snd-rt, plus benchmarks,
extensions, and discussions about realtime music programming.

I wanted to add some illustrations, larger fonts for the pseudo code,
more white-space in the item lists, more references, more information
about previous work, more detailed explanations and discussions, etc.,
but it couldn't be included because of limited space. I hope it should
be quite understandable and readable anyway.


Garbage-producing and efficient programming
languages such as Haskell, Lisp or ML have traditionally not been used
for generating individual samples in realtime.
The reason is a lack of garbage collector fast and predictably enough to
make these languages viable alternatives to C and C++ for high performing
audio DSP. This paper shows how conservative garbage collectors can be 
used efficiently for realtime audio signal processing.

Two new garbage collectors are described. The first collector
can easily replace garbage collectors in many existing programming 
languages and has
successfully been used for the Stalin Scheme implementation. The second
garbage collector has a higher memory overhead and requires a simple write 
barrier, but does not restrain the amount of memory.

Both collectors find garbage by running a parallel
mark-and-sweep on snapshots. The snapshot buffers are either
copied to between soundcard interrupts or filled up by write barriers.
To ensure predictability, worst-case is simulated about once a second,
and all running garbage collectors are synchronized to avoid more than one
garbage collector to block audio simultaneously.

More information about the Cmdist mailing list