Heap garbage collection with reference counting

Wuu Yang*, Huei Ru Tseng, Rong Hong Jan

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

In algorithms based on reference counting, a garbage-collection decision has to be made whenever a pointer x → y is about to be destroyed. At this time, the node y may become dead even if y's reference count is not zero. This is because y may belong to a piece of cyclic garbage. Some aggressive collection algorithms will put y on the list of potential garbage regardless of y's reference count. Later a trace procedure starting from y will be initiated. Other algorithms, less aggressive, will put y on the list of potential garbage only if y's reference count falls below a threshold, such as 3. The former approach may waste time on tracing live nodes and the latter may leave cyclic garbage uncollected indefinitely. The problem with the above two approaches (and with reference counting in general) is that it is difficult to decide if y is dead when the pointer x → y is destroyed. We propose a new garbage-collection algorithm in which each node maintains two, rather than one, reference counters, gcount and hcount. Gcount is the number of references from the global variables and from the run-time stack. Hcount is the number of references from the heap. Our algorithm will put node y on the list of potential garbage if and only if y's gcount becomes 0. The better prediction made by our algorithm results in more efficient garbage collectors.

Original languageEnglish
Title of host publicationICSOFT 2010 - Proceedings of the 5th International Conference on Software and Data Technologies
Pages267-270
Number of pages4
DOIs
StatePublished - 1 Dec 2010
Event5th International Conference on Software and Data Technologies, ICSOFT 2010 - Athens, Greece
Duration: 22 Jul 201024 Jul 2010

Publication series

NameICSOFT 2010 - Proceedings of the 5th International Conference on Software and Data Technologies
Volume2

Conference

Conference5th International Conference on Software and Data Technologies, ICSOFT 2010
CountryGreece
CityAthens
Period22/07/1024/07/10

Keywords

  • Closed cluster
  • Cyclic garbage
  • Depth-first search
  • Garbage collection
  • Graph theory
  • Reference count

Cite this

Yang, W., Tseng, H. R., & Jan, R. H. (2010). Heap garbage collection with reference counting. In ICSOFT 2010 - Proceedings of the 5th International Conference on Software and Data Technologies (pp. 267-270). (ICSOFT 2010 - Proceedings of the 5th International Conference on Software and Data Technologies; Vol. 2). https://doi.org/10.5220/0002917502670270