[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
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.
More information about the Self-interest