An efficient on-the-fly cycle collection

  • Authors:
  • Harel Paz;Erez Petrank;David F. Bacon;Elliot K. Kolodner;V. T. Rajan

  • Affiliations:
  • Dept. of Computer Science, Technion – Israel Institute of Technology, Haifa, Israel;Dept. of Computer Science, Technion – Israel Institute of Technology, Haifa, Israel;IBM T.J. Watson Research Center;IBM Haifa Research Lab;IBM T.J. Watson Research Center

  • Venue:
  • CC'05 Proceedings of the 14th international conference on Compiler Construction
  • Year:
  • 2005

Quantified Score

Hi-index 0.02

Visualization

Abstract

A reference-counting garbage collector cannot reclaim unreachable cyclic structures of objects. Therefore, reference-counting collectors either use a backup tracing collector infrequently, or employ a cycle collector to reclaim cyclic structures. We propose a new concurrent cycle collector, i.e., one that runs concurrently with the program threads, imposing negligible pauses (of around 1ms) on a multiprocessor. Our new collector combines the state-of-the-art cycle collector [5] with the sliding-views collectors [20, 2]. The use of sliding views for cycle collection yields two advantages. First, it drastically reduces the number of cycle candidates, which in turn, drastically reduces the work required to record and trace these candidates. Therefore, a large improvement in cycle collection efficiency is obtained. Second, it eliminates the theoretical termination problem that appeared in the previous concurrent cycle collector. There, a rare race may delay the reclamation of an unreachable cyclic structure forever. The sliding-views cycle collector guarantees reclamation of all unreachable cyclic structures. The proposed collector was implemented on the Jikes RVM and we provide measurements including a comparison between the use of backup tracing and the use of cycle collection with reference counting. To the best of our knowledge, such a comparison has not been reported before.