Cheney's original copying algorith,from which all other copying algo-rithms are derived,divides memory into spaces,and only uses one space at a time.It collects garbage by a breadth-first traversal of all nongarbage objects,copying them from from-space to to-space.Once all nongarbage objects have been copied,it reclaims all the memory in from-space by reversing the roles of from-space and to-space.Real-time versions of this algorithm always perform lazy copying.
Baker's algorithm copies objrcts one at a time when they are first accessed by the mutator(4).It checks pointers as the mutator traverses them,and translates a pointer to from-space to its new version in to-space.An object is copied the first time its pointer is traversed,and thereafter traversing a pointer to its version in from-space does not require copying. The real-time latency of this algorithm is the time to copy an object.Baker mentions a suggested improvement by Steele that copies large objects lazily so that the real-time latency would be reduced to the time to copy a fraction of an object.Thus,Baker makes Cheney's algorithm lazy,Steele makes it even more lazy.
The main problem with Baker's algorithm is that checking a pointer each time it is dereferenced is slow unless there is special hardware or microcode dupport(4,9,10).The Appel-Ellis-Li algorthm is another lazy version of Cheney's algorithm,but it can use the virtual memory address transion hardware's algorithm,but it can use the virtual memory address translation hardware to distinguish refernces to copied objects from those to uncopied objects(1),and so works well on conventional hardware.Instead of trapping uses of pointers to from-space,it traps reads that might obtain a pointer to from-space.