A Multithreaded Concurrent Garbage Collector Parallelizing the New Instruction in Java
نویسندگان
چکیده
1 Parallel, multithreaded Java applications such as web servers, database servers, and scientific applications are becoming increasingly prevalent. Most of them have high object instantiation rates through the new bytecode that is implemented in a garbage collection subsystem typically. For aforementioned applications, traditional garbage collectors are often the bottleneck that limits program performance and processor utilization on multiprocessor systems. They suffer from long garbage collection pauses (stop-the-world mark-sweep algorithm) or inability of collecting cyclic garbage (reference counting approach). Generational garbage collection, however, is based only on the weak generational hypothesis that most objects die young. In this paper, a new multithreaded concurrent generational garbage collector (MCGC) based on mark-sweep with the assistance of reference counting is proposed. The MCGC can take advantage of multiple CPUs in an SMP system and the merits of light weight processes. Furthermore, the long garbage collection pause can be reduced and the garbage collection efficiency can be enhanced.
منابع مشابه
Class Unloading with a Concurrent Garbage Collector in an Embedded Java VM
This paper presents the design and implementation of class unloading in an embedded Java Virtual Machine. Even though the Java Language specification states explicitly when a given class must be unloaded there is a surprising lack of papers on a systematized and step-by-step explanation of when and how a class becomes available for unloading. This paper presents a more formalized approach to Ja...
متن کاملParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
This brief announcement provides a high level overview of a parallel mark-split garbage collector. Our parallel design introduces and makes use of an efficient concurrency control mechanism based on a lock-free skip-list design for handling the list of free memory intervals. We have implemented the parallel mark-split garbage collector in OpenJDK HotSpot as a parallel and concurrent garbage col...
متن کاملBrief Announcement: ParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
This brief announcement provides a high level overview of a parallel mark-split garbage collector. Our parallel design introduces and makes use of an efficient concurrency control mechanism based on a lock-free skip-list design for handling the list of free memory intervals. We have implemented the parallel mark-split garbage collector in OpenJDK HotSpot as a parallel and concurrent garbage col...
متن کاملIntegrating Generations with Advanced Reference Counting Garbage Collectors
We study an incorporation of generations into a modern reference counting collector. We start with the two on-the-fly collectors suggested by Levanoni and Petrank: a reference counting collector and a tracing (mark and sweep) collector. We then propose three designs for combining them so that the reference counting collector collects the young generation or the old generation or both. Our desig...
متن کاملDesigning a Concurrent Hardware Garbage Collector for Small Embedded Systems
Today more and more functionality is packed into all kinds of embedded systems, making high-level languages, such as Java, increasingly attractive as implementation languages. However, certain aspects, essential to high-level languages are much harder to address in a low performance, small embedded system than on a desktop computer. One of these aspects is memory management with garbage collect...
متن کامل