[gclist] Baker's treadmill improvments.

Charles Fiterman cef@geodesic.com
Fri, 31 Jan 1997 12:54:40 -0600

At 12:09 PM 1/31/97 -0600, you wrote:
>Could you be more specific about what you mean by "the treadmill" and
>what the high overheads are?

We use double linked lists and are going to double linked lists and one
heapsort type heap. Obviously there is the two pointer overhead per
object. Because we are C++ we have to deal with some more problems.
Objects have separate handles so there are two more pointers to connect
the object to the handle and back. C++ objects can be composed so each
time there is a sub object that was declared gc there is another pointer
to the handle. If a collectible object is created non heap it is the
sum of its collectible pieces, we can no longer figure out its bounds
so there are handles for each sub object.

And putting all this stuff together is a lot of time overhead. The
write barrier is relativly trivial. The pay back is that the collector
and finalizers run in idle time. We end up ahead in speed when you count
this in.
Charles Fiterman		Geodesic Systems
414 North Orleans Suite 410	Phone 312 832 1221 x223
Chicago IL 60610-4418		FAX   312 832 1230

A computer language without garbage collection
  is like a city without garbage collection.