[chuck-users] GC vs real-time (was Getting Started with ChucK)

Tom Duff td at pixar.com
Thu Jul 23 12:54:38 EDT 2009


On Wed, 22 Jul 2009, Hans Aberg wrote:

> But if you you one which is tested and can guarantee no delays in the  
> programming threads, let's hear.

Supercollider uses a real-time incremental garbage collector based on
this paper:

       Paul R. Wilson, Uniprocessor Garbage Collection Techniques, 
       Proceedings of the 1992 International Workshop on Memory Management,
       Springer-Verlag, Berlin, 1992.
       ftp://ftp.cs.utexas.edu/pub/garbage/gcsurvey.ps

Wilson's method doesn't have to run in a separate thread (so no thread
locking), the work done per allocation is strictly bounded (i.e. it's
guaranteed that there are no long garbage-collection pauses during
allocation), and the overhead per heap access is likewise constant (and
tiny.)

There have been advances in the state of the art since 1992, but this
method works fine for high-throughput systems like Supercollider, and is
certainly adequate for low-latency, low-performance systems like ChucK.

-- 
Tom Duff.  Electrically engraved with the world's finest entertainment.


More information about the chuck-users mailing list