Queue cleanup

Paul Rubin no.email at nospam.invalid
Thu Sep 2 04:16:54 EDT 2010


Dennis Lee Bieber <wlfraed at ix.netcom.com> writes:
>> GC's for large systems ... copy the live objects to a new contiguous heap

> 	That sounds suspiciously like the original Macintosh OS, with its
> "handles"... IE, double-indirection. 

Nah, a double indirection on every access would be a terrible
performance hit.  The classic approach is when you move an object to the
new heap, you leave a tagged forwarding pointer at its former location
the old heap, giving the its location in the new heap.  Then as you move
other objects, you dereference the pointers in them to see whether they
point to moved or unmoved objects, and relocate any unmoved ones.  A
more complete explanation is here:

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-33.html#%_sec_5.3.2 



More information about the Python-list mailing list