Cyclic reference counting with local mark-scan
Information Processing Letters
Cyclic reference counting with lazy mark-scan
Information Processing Letters
Generational cyclic reference counting
Information Processing Letters
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
A method for overlapping and erasure of lists
Communications of the ACM
Letters to the editor: on the reference counter method
Communications of the ACM
Java without the coffee breaks: a nonintrusive multiprocessor garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An on-the-fly reference counting garbage collector for Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An efficient algorithm for cyclic reference counting
Information Processing Letters
On-the-fly Global Garbage Collection Based on Partly Mark-Sweep
IWMM '95 Proceedings of the International Workshop on Memory Management
Concurrent Cycle Collection in Reference Counted Systems
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Cyclic Weighted Reference Counting without Delay
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Collecting Cyclic Garbage in Distributed Systems
ISPAN '97 Proceedings of the 1997 International Symposium on Parallel Architectures, Algorithms and Networks
An efficient on-the-fly cycle collection
CC'05 Proceedings of the 14th international conference on Compiler Construction
A lightweight cyclic reference counting algorithm
GPC'06 Proceedings of the First international conference on Advances in Grid and Pervasive Computing
Simple concurrent garbage collection almost without synchronization
Formal Methods in System Design
An efficient approach to cyclic reference counting based on a coarse-grained search
Information Processing Letters
Cyclic reference counting by typed reference fields
Computer Languages, Systems and Structures
Hi-index | 0.00 |
The lack of collecting cyclic garbage is generally considered the major weakness of reference counting. Reference counted systems handle this problem by incorporating either a global tracing collector, or a "partial" tracing collector that considers only the cycle candidates but needs several traces on them. In particular, the latter has become a preferred one as it has better scalability and locality (no need to scan the entire heap). This paper presents a new "lightweight" cyclic reference counting algorithm, which is based on partial tracing and deals with the cycle problem in a simpler and more efficient way. By exploiting the lightweight hypothesis that considers a single sub-graph, instead of individual cycles, as the basic unit of cycle collection, the algorithm can detect garbage cycles in a single trace. In addition, we propose a technique for eliminating redundant scans over garbage objects, thus improving the efficiency of the algorithm. The pseudocode and its correctness proof are also presented. Finally, an implementation based on Jikes Research Virtual Machine is provided to demonstrate the effectiveness of the new algorithm.