CoMarkSplit: A Concurrent Mark-Split Garbage Collector
2012 (English)Report (Other academic)
Abstract [en]
Garbage collectors are important components of many modern programming languages and runtime systems. Mark-split is a garbage collection algorithm that combines advantages of both mark-sweep and copying collection algorithms. With the switch to multi-core and many-core microprocessors, parallelism becomes a core issue in the design of any algorithm or software system. In this paper, we present a concurrent design of the mark-split garbage collector. Our concurrent design algorithmically introduces and makes use of an efficient concurrency control mechanism for handling the list of free intervals. This mechanism is based on a lock-free skip-list design and supports an extended set of operations that allows, atomically and in a lock-free manner, to search and remove and also to insert two intervals at the same time. We have implemented the concurrent mark-split garbage collector in OpenJDK HotSpot as a garbage collector for the tenured generation. We present experimental evaluation of our concurrent collector and compare it with the default concurrent marks-sweep garbage collector present in OpenJDK HotSpot, using the Dacapo benchmarks. The evaluation shows that our concurrent mark-split performs better than the concurrent mark-sweep garbage collector in some applications.
Place, publisher, year, edition, pages
Chalmers University of Technology , 2012. , p. 10
Series
Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University, ISSN 1652-926X
Keywords [en]
Computer Science
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:hb:diva-4551Local ID: 2320/11601OAI: oai:DiVA.org:hb-4551DiVA, id: diva2:883933
2015-12-172015-12-172018-01-10Bibliographically approved