Abstract
General purpose garbage collectors have yet to combine short pause times with high throughput. For example, generational collectors can achieve high throughput. They have modest average pause times, but occasionally collect the whole heap and consequently incur long pauses. At the other extreme, concurrent collectors, including reference counting, attain short pause times but with significant performance penalties. This paper introduces a new hybrid collector that combines copying generational collection for the young objects and reference counting the old objects to achieve both goals. It restricts copying and reference counting to the object demographics for which they perform well. Key to our algorithm is a generalization of deferred reference counting we call Ulterior Reference Counting. Ulterior reference counting safely ignores mutations to select heap objects. We compare a generational reference counting hybrid with pure reference counting, pure mark-sweep, and hybrid generational mark-sweep collectors. This new collector combines excellent throughput, matching a high performance generational mark-sweep hybrid, with low maximum pause times.
Original language | English |
---|---|
Pages (from-to) | 344-358 |
Number of pages | 15 |
Journal | ACM SIGPLAN Notices |
Volume | 38 |
Issue number | 11 |
DOIs | |
Publication status | Published - Nov 2003 |
Event | Proceedings of the 2003 ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications - Anaheim, CA, United States Duration: 26 Oct 2003 → 30 Oct 2003 |