ttwang@polyslo.CalPoly.EDU (Thomas Wang) (09/03/89)
I have received several letters saying garbage collection is indeed superior to reference counting. I am still reading "Object-oriented Software Construction". I just found another issue dealing with reference counting versus garbage collection. On page 88, there is an example: -- Assume that here b is not void and b.x is true a := b; -- a now points to b's object a.set_x_false -- Then here b.x is false One solution to this problem is for function set_x_false() to know if 'a' is the sole user of the object. If the object is shared by more than one reference, then 'a' must be assigned a clone object first. This solution requires set_x_false() to know the reference count. If we must maintain a reference count in the first place, why not use reference counting for this class? In any case, the reference count can be put into good use even in a garbage collection system. We can give an object with high reference count a longer grace period (I.E. make it a tenured object for a while). I hope C++ can have an automatic memory management system, but I am not holding my breath. -Thomas Wang ("Ole wa onna da!!!" - from Urusei Yatsura) ttwang@polyslo.calpoly.edu
jima@hplsla.HP.COM (Jim Adcock) (09/05/89)
> I hope C++ can have an automatic memory management system, but I am not > holding my breath. This was addressed a month or two back, with the conclusion that under 2.0 it is relatively easy to add GC to C++, and people have done so. Not to imply I believe GC is uniformly the answer over ref counting. I believe each has its place. Better yet if one can write classes that need neither.