Dual-Mode Garbage Collection
نویسنده
چکیده
The garbage collector presented in this paper makes use of two well known compaction garbage collection algorithms with very diierent performance characteristics: Cheney's two-space copying collector and Jonker's sliding compaction collector. We propose a scheme which allows either collector to be used. The run-time memory requirements of the program being executed are used to determine the most appropriate collector. This enables us to achieve a fast collector for heap requirements less than half of the heap memory but allows the heap utilization to increase beyond this threshold. Using these ideas we develop a particularly attractive extension to Appel's generational collector. We also describe a particularly fast implementation of the garbage collector which avoids interpreting the structure and current state of closures by attaching speciic code to heap objects. This code knows the structure and current state of the object and performs the appropriate actions without having to test any ag or arity elds. The result is an implementation of these collection schemes which does not require any additional storage to be associated with the heap objects.
منابع مشابه
Hard Real-time Hybrid Garbage Collection with Low Memory Requirement
Current real-time garbage collection algorithms are usually criticised for their high memory requirements. Even when consuming nearly 50% of cpu time, some garbage collectors ask for at least twice the memory as really needed. This report explores the fundamental reason of this problem and proposes new metrics for real-time garbage collection algorithm designs. Use of these metrics motivate an ...
متن کاملGarbage Collection of Persistent Objects in a Distributed Object-Oriented Platform
This document describes distributed garbage collection in IK, an object-oriented platform which facilitates the construction of persistent and distributed applications. Object references can be freely passed during remote invocations or stored persistently. IK supports orthogonal persistence with type inheritance. Objects become persistent when reachable from a Persistent Root. Objects are crea...
متن کاملComprehensive, Concurrent, and Robust Garbage Collection in the Distributed, Object-Based System Emerald
Garbage collection schemes are investigated to provide a solution well-suited for the distributed object-based system, Emerald. A distributed garbage collection scheme is implemented. It collects all garbage (comprehensive), works while the system is running user applications (concurrent), and copes with partial failures due to the distributed nature of the system (robustness). The collection s...
متن کاملCache Performance in Java Virtual Machines: A Study of Constituent Phases
This paper studies the level 1 cache performance of Java programs by analyzing memory reference traces of the SPECjvm98 applications executed by the Latte Java Virtual Machine. We study in detail Java programs’ cache performance of different access types in three JVM phases, under two execution modes, using three cache configurations and two application data sets. We observe that the poor data ...
متن کاملA dual-engine for early analysis of critical systems
This paper presents a framework for modeling, simulating, and checking properties of critical systems based on the Alloy language – a declarative, first-order, relational logic with a built-in transitive closure operator. The paper introduces a new dual-analysis engine that is capable of providing both counterexamples and proofs. Counterexamples are found fully automatically using an SMT solver...
متن کامل