Early storage reclamation in a tracing garbage collector

This article presents a novel technique for allowing the early recovery of storage space occupied by garbage data. The idea is similar to that of generational garbage collection, except that heap is partitioned based on a static analysis of data type definitions rather than on the approximate age of allocated objects. A prototype implementation is presented, along with initial results and ideas for future work.

[1]  Sheng Liang,et al.  Dynamic class loading in the Java virtual machine , 1998, OOPSLA '98.

[2]  Stephen N. Freund,et al.  Adding type parameterization to the Java language , 1997, OOPSLA '97.

[3]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[4]  Urs Hölzle,et al.  Do Object-Oriented Languages Need Special Hardware Support? , 1995, ECOOP.

[5]  John H. Reppy A High-performance Garbage Collector for Standard ML , 1993 .

[6]  Henry G. Baker,et al.  The treadmill: real-time garbage collection without motion sickness , 1992, SIGP.

[7]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

[8]  Mads Tofte,et al.  A theory of stack allocation in polymorphically typed languages , 1993 .

[9]  David Ungar Generation scavenging: a nondisruptive high performance storage reclamation algorithm , 1984 .

[10]  Mads Tofte A brief introduction to regions , 1998, ISMM '98.

[11]  Greg Morrisett,et al.  Compiling with Types , 1995 .

[12]  Suad Alagic,et al.  Parametric polymorphism for Java: a reflective solution , 1998, OOPSLA '98.

[13]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[14]  J. Boehm Space Eecient Conservative Garbage Collection , 1993 .

[15]  Brian N. Bershad,et al.  A memory-efficient real-time non-copying garbage collector , 1998, ISMM '98.

[16]  Andrew C. Myers,et al.  Parameterized types for Java , 1997, POPL '97.

[17]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[18]  Urs Hölzle,et al.  Adaptive optimization for self: reconciling high performance with exploratory programming , 1994 .