Garbage collection in an uncooperative environment
Software—Practice & Experience
Using key object opportunism to collect old objects
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Reducing sweep time for a nearly empty heap
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A Lifetime-based Garbage Collector for LISP Systems on General- Purpose Computers
A Lifetime-based Garbage Collector for LISP Systems on General- Purpose Computers
Myths and realities: the performance impact of garbage collection
Proceedings of the joint international conference on Measurement and modeling of computer systems
An efficient parallel heap compaction algorithm
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reducing generational copy reserve overhead with fallback compaction
Proceedings of the 5th international symposium on Memory management
The Compressor: concurrent, incremental, and parallel compaction
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Performance of Storage Management in an Implementation of SNOBOL4
IEEE Transactions on Software Engineering
A Fully Parallel LISP2 Compactor with Preservation of the Sliding Properties
Languages and Compilers for Parallel Computing
Index-compact garbage collection
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
The Garbage Collection Handbook: The Art of Automatic Memory Management
The Garbage Collection Handbook: The Art of Automatic Memory Management
An efficient non-moving garbage collector for functional languages
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Mark-compact garbage collection helps long-running programs avoid fragmentation. The Lisp2 mark-compact collector is a classic but still widely-used compaction algorithm. It sequentially scans the entire heap to compact all live objects at one end of the heap while preserving their order of addresses. Since the heap is generally large, this scanning takes a long time. Although some collectors adopt a separate bitmap into which mark bits of objects are stored to reduce the scanning time, we observed that scanning the bitmap can take longer than scanning the heap if objects are densely located. We propose a new scanning method from this observation, which adaptively alternates methods of scanning depending on heap usage; it scans those parts of the heap where live objects are densely located whereas it scans the bitmap for the remaining parts. We implemented this scanning method in the Lisp2 collector of Jikes RVM. The experimental results revealed that the adaptive scanner scanned faster than the method that only scanned the heap and the method that only scanned the bitmap.