An efficient, incremental, automatic garbage collector
暂无分享,去创建一个
This paper describes a new way of solving the storage reclamation problem for a system such as Lisp that allocates storage automatically from a heap, and does not require the programmer to give any indication that particular items are no longer useful or accessible. A reference count scheme for reclaiming non-self-referential structures, and a linearizing, compacting, copying scheme to reorganize all storage at the users discretion are proposed. The algorithms are designed to work well in systems which use multiple levels of storage, and large virtual address space. They depend on the fact that most cells are referenced exactly once, and that reference counts need only be accurate when storage is about to be reclaimed. A transaction file stores changes to reference counts, and a multiple reference table stores the count for items which are referenced more than once.
[1] Douglas W. Clark,et al. An empirical study of list structure in Lisp , 1977, CACM.
[2] Daniel G. Bobrow,et al. A note on hash linking , 1975, CACM.
[3] Marvin Minsky,et al. A LISP Garbage Collector Algorithm Using Serial Secondary Storage , 1963 .
[4] Daniel G. Bobrow,et al. Structure of a LISP system using two-level storage , 1967, CACM.
[5] Robert Fenichel,et al. A LISP garbage-collector for virtual-memory computer systems , 1969, CACM.