Garbage collection frees the programmer from the responsibility of tracking dynamically allocated memory. As an increasingly popular element of modern programming languages, it is essential that garbage collection be performed efficiently. This thesis investigates a new method by which garbage collection can be performed.
The algorithm described combines a standard generational copying collector with a mark and compact collector. The result is a generational copying collector that operates with a smaller copying reserve overhead than traditional Appel-style collectors, while maintaining correctness in the worst case. When sufficient objects survive a collection, a compacting collection ensures that all data are accommodated.
We have implemented this new algorithm within the framework of Jikes RVM and MMTk. For most benchmarks examined, our experiments show that performance is comparable or better to a standard generational copying collector.
@mastersthesis{McGachey2005MS, author = {McGachey, Philip}, title = {An Improved Generational Copying Garbage Collector}, school = {Purdue University}, year = {2006}, month = {December} }