Path: utzoo!attcan!uunet!mcsun!ukc!cam-cl!scc From: scc@cl.cam.ac.uk (Stephen Crawley) Newsgroups: comp.sw.components Subject: Re: Real-time Garbage Collection Message-ID: <901@scaup.cl.cam.ac.uk> Date: 21 Sep 89 01:27:59 GMT References: <1917@hydra.gatech.EDU> <6506@hubcap.clemson.edu> Sender: news@cl.cam.ac.uk Organization: U of Cambridge Comp Lab, UK Lines: 29 [Sorry about the Re:^n's ... bugs in my news reader] Bill Wolfe proposes a scheme for getting around the need for garbage collection by storing objects in a database, using object expiration times to avoid proper garbage collection. Unfortunately this scheme doesn't achieve its aim. Bill says: "Where objects can have an infinite lifetime, a protocol can be devised whereby the database must be checked at least once per some arbitrary time period by all users, which will permit identification numbers to be recycled after one full time period of nonexistence." Exactly. In order to check each object that it still refers to, each "user" (actually application) must traverse the graph of its objects in the database. This process is exactly equivalent to the mark phase of a garbage collection, except that the application is doing it!!! One other point that Bill Wolfe misses is that the CPU overheads of managing objects in this way can be orders of magnitude greater than the cost of using ordinary pointers. Don't get me wrong, I've been doing research in this particular area for a number of years, and I strongly believe that object databases are the way of the future. But they ain't cheap, and they ain't a substitute for garbage collection. -- Steve