Squeak Instrumentation Challenge

Brian Rice water at tunes.org
Thu Jan 13 17:31:31 UTC 2005


Slate also had a non-moving mark-sweep style allocator for its initial  
bootstrap for simplicity reasons. We then went for mark-sweep-compact  
with object pinning (which does keep an object in-place) for those on  
the root stack - even then it'll not be the final form of the  
memory-management subsystem. Both GC's are polymorphic and  
easily-swapped, but we haven't maintained the former. It could be  
revived for comparisons, possibly. In any case, you won't find terribly  
good locality figures unless you create a modified memory manager which  
moves objects around at least some of the time.

Unfortunately, C-based allocators have further restrictions beyond that  
mentioned that may cloud any lessons learned for others. See the  
essential book on the topic _Garbage Collection_. But Boehm is definite  
a man to ask.

On Jan 13, 2005, at 7:14 AM, Ned Konz wrote:

> On Wednesday 12 January 2005 11:09 pm, Dan Ingalls wrote:
>> Partial credit:  If you have real experience with a Squeak-like  
>> system that
>> worked this way, give some report on the fragmentation behavior
>> experienced.
>> References to papers with practical results in the area would also be  
>> of
> interest.
>
> Tell Ian to ask Hans Boehm. He's at HP Labs, building 3. And he's an  
> expert in
> the topic. He's the author of a popular GC library for C programs; of  
> course,
> it's much safer in C programs not to move things because it's  
> sometimes hard
> to tell what's a pointer.
>
> His slide show:
> http://www.hpl.hp.com/personal/Hans_Boehm/gc/nonmoving/index.html
>
> A description of techniques used in the Great Circle conservative GC  
> library
> (which I believe is based on Hans Boehm's work):
> http://www.cs.purdue.edu/homes/grr/ISMM98-grr-mps-cef.pdf
>
> Henry Bakers' "Treadmill" algorithm appeared in the ACM SIGPLAN  
> Notices in
> 1992. I think it was used in a Lisp system.
> http://portal.acm.org/ft_gateway.cfm? 
> id=130862&type=pdf&coll=ACM&dl=ACM&CFID=36433663&CFTOKEN=40514639
>
> I  believe that Smalltalk/MT's GC (which is done in a separate thread  
> and so
> can be paused and resumed) is a non-moving scheme. They play well with
> external libraries, in part because they don't move objects.
>
> -- 
> Ned Konz
> http://bike-nomad.com/squeak/
>
>
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/




More information about the Squeak-dev mailing list