Linked by Zachary Pinter on Tue 27th Apr 2004 17:09 UTC
General Development Garbage collection (GC) is a technology that frees programmers from the hassle of explicitly managing memory allocation for every object they create. Traditionally, the benefit of this automation has come at the cost of significant overhead. However, more efficient algorithms and techniques, coupled with the increased computational power of computers have made the overhead negligible for all but the most extreme situations.
Permalink for comment
To read all comments associated with this story, please click here.
Finalizers
by Treza on Wed 28th Apr 2004 09:09 UTC

Finalisers ( user defined "destructors", a la C++ ) are bad for GC managed languages :
- Usually, the precise instant of destruction is random, as well as the order of destructions between several objects. Reference counting GCs are more "predictable"(?) than Mark/Sweeps ones.

- The "finalised" objects need to pass trough the collector twice as the finaliser may want to make the object uncollectable.

I recommand the reading of the classical paper "Uniprocessor Garbage Collection Techniques" by Paul R. Wilson, available as draft and full text, see http://citeseer.ist.psu.edu/wilson92uniprocessor.html, http://www.cs.utexas.edu/users/oops/papers.html