An on-the-fly reference counting garbage collector for Java

Yossi Levanoni, Erez Petrank
2001 SIGPLAN notices  
Reference counting is not naturally suitable for running on multiprocessors. The update of pointers and reference counts requires atomic and synchronized operations. We present a novel reference counting algorithm suitable for a multiprocessor that does not require any synchronized operation in its write barrier (not even a compare-and-swap type of synchronization). The algorithm is efficient and may compete with any tracing algorithm. We have implemented our algorithm on SUN's Java Virtual
more » ... ine 1.2.2 and ran it on a 4-way IBM Netfinity 8500R server with 550MHz Intel Pentium III Xeon and 2GB of physical memory. It turns out that our algorithm has an extremely low latency and throughput that is comparable to the mark and sweep algorithm used in the original JVM.
doi:10.1145/504311.504309 fatcat:mwcbttqcsfcztp6yuipxa7feou