[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Avoiding FFI- allocations + using SSE-vectors
- From: Douglas Creager <douglas@...>
- Date: Mon, 6 Feb 2012 21:45:48 -0500
> Other downsides to GC: you have to maintain a list of root objects
> and make sure that all roots are discoverable when the GC runs,
> most GC algorithms stop all threads and have practically unbounded
> latency for a full collection, GC can often require tuning for demanding
> work-loads.
>
> IMO the worst drawback of refcounting by far is that by itself it
> cannot collect cyclic references.
Reference counting can count cycles, too. For instance, I'm using the algorithm in
[1] Bacon, DF and Rajan VT. “Concurrent cycle collection in reference counted systems”. Proc. ECOOP 2001. LNCS 2072. http://www.research.ibm.com/people/d/dfb/papers/Bacon01Concurrent.pdf
The garbage collection I'm working with doesn't need to be thread-safe, so I can use the simpler algorithm from §3 of that paper. It has to maintain roots, but only the roots of possible cycles when an object is decref-ed.
Then again, maybe there are enough additional functions in that algorithm that you've just bolted a tracing collector on to the reference counting collector...
–doug