This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cons expensive? (was Re: DHARMI project)


>>>>> "Telford" == Telford Tendys <telford@triangle.triode.net.au> writes:

Telford> * you can make the garbage collector faster by giving it less
Telford> work to do.

Telford> * a lot of the garbage that needs collecting is objects that
Telford> are used once and then discarded -- since we know that such
Telford> objects only have a single reference to them, once that
Telford> single reference is gone it is possible for these objects to
Telford> take a short-cut through collection.

I am not sure that there is any possible short-cuts.

Discovering that a single reference disappear is not enough by
itself. Even though we know at de-reference time, that the object in
question is now garbage, it is still part of the heap. When the
collector runs, it must scan through the *entire* heap and thus must
consider the "early-dead" objects as well as those marked (or not
marked) ordinarily.

This is precisely the problem with mark/sweep collectors, as I
understand it. The effort is proportional to *all* the data, dead as
well as alive.

Hmm, doesn't this mean that the sweep phase basically is constant,
depending only on heap size?


---------------------------+--------------------------------------------------
Christian Lynbech          | Telebit Communications A/S                       
Fax:   +45 8628 8186       | Fabrik 11, DK-8260 Viby J
Phone: +45 8628 8177 + 28  | email: chl@tbit.dk --- URL: http://www.telebit.dk
---------------------------+--------------------------------------------------
Hit the philistines three times over the head with the Elisp reference manual.
                                        - petonic@hal.com (Michael A. Petonic)