[self-interest] garbage collection

Jecel Assumpcao Jr jecel at merlintec.com
Tue Aug 27 22:12:43 UTC 2002

On Tuesday 27 August 2002 18:29, Steve Dekorte wrote:
> I think I remember reading that Self uses a generational copying
> garbage collector. Is that right?

Yes, there is a "eden space" where new objects are born, two areas 
forming semi-spaces for "young objects" and a large area of old 
objects. So we have three generations in all.

> If so, I'm curious about why that
> approach was taken instead of something like an incremental tri-color
> collector.

Probably one of the language's designers read this paper and thought it 
was a good idea:

David Ungar, "Generation Scavenging: A Non-disruptive High Performance 
Storage Reclamation Algorithm", in Proceedings of the ACM 
SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software 
Development Environments, 1984. 


> A generational collector would avoid the frequent pauses of a mark
> and sweep collector but would still have  infrequent pauses which (I
> would think) would be a problem for a interactive system.

It is indeed a problem - I have spent quite a while staring at the 
"collecting garbage" dialog box waiting for the system to unfreeze. But 
that is simply because no effort was made to make the "old space" 
collection more incremental. If such an effort/redesign were made 
(while keeping the other generations as they are now) then the system 
would be more suitable for interactive use.

-- Jecel

More information about the Self-interest mailing list