Issue No. 02 - February (2006 vol. 17)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TPDS.2006.28
D. Janakiram , IEEE
<p><b>Abstract</b>—The current state-of-the-art generational garbage collector pauses all the program threads when it performs young and old generation garbage collection. As the number of program threads increases, the delay due to garbage collection also increases, thus restricting the scalability of the collector. In order to improve the scalability and reduce the pause time, an on-the-fly generational garbage collector called <it>Yama</it> is proposed for multiprocessor systems. This uses the on-the-fly deferred reference counting in the young generation and the DLG (Doligez Leroy Gonthier) on-the-fly mark and sweep garbage collector in the old generation. We have proposed and experimented with two novel variations of the on-the-fly deferred reference counting called <it>Chitragupt1</it> and <it>Chitragupt2</it> in the young generation. <it>Yama</it> does not pause all the application threads simultaneously. An adaptive tenuring policy based on object reference count and survival rate is also proposed. <it>Yama</it> has been implemented in the IBM Jikes RVM (Research Virtual Machine). The above claims are supported with experimental results for standard benchmark programs. The results show that <it>Yama</it> has an extremely low pause time in both the young and the old generation. The pause time reduction results in better response times for the user programs.</p>
Garbage collection, memory management, Java, programming languages, Java virtual machine, on-the-fly garbage collection.
D. Janakiram and R. Muthukumar, "Yama: A Scalable Generational Garbage Collector for Java in Multiprocessor Systems," in IEEE Transactions on Parallel & Distributed Systems, vol. 17, no. , pp. 148-159, 2006.