Incremental incrementally compacting garbage collection
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Garbage collection can be faster than stack allocation
Information Processing Letters
Garbage collection in an uncooperative environment
Software—Practice & Experience
Simple generational garbage collection and fast allocation
Software—Practice & Experience
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
An efficient meta-lock for implementing ubiquitous synchronization
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
A generational mostly-concurrent garbage collector
Proceedings of the 2nd international symposium on Memory management
A nonrecursive list compacting algorithm
Communications of the ACM
The Java Language Specification
The Java Language Specification
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
Combining Single-Space and Two-Space Compacting Garbage Collectors
Proceedings of the 1991 Glasgow Workshop on Functional Programming
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
GC Points in a Threaded Environment
GC Points in a Threaded Environment
Controlling garbage collection and heap growth to reduce the execution time of Java applications
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
To Collect or Not to Collect? Machine Learning for Memory Management
Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium
Dynamic selection of application-specific garbage collectors
Proceedings of the 4th international symposium on Memory management
Reducing generational copy reserve overhead with fallback compaction
Proceedings of the 5th international symposium on Memory management
Controlling garbage collection and heap growth to reduce the execution time of Java applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Linear combinations of radioactive decay models for generational garbage collection
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Application-specific garbage collection
Journal of Systems and Software
Intelligent selection of application-specific garbage collectors
Proceedings of the 6th international symposium on Memory management
A study of Java object demographics
Proceedings of the 7th international symposium on Memory management
GCH: Hints for Triggering Garbage Collections
Transactions on High-Performance Embedded Architectures and Compilers I
Influence of program inputs on the selection of garbage collectors
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Investigating the effects of using different nursery sizing policies on performance
Proceedings of the 2009 international symposium on Memory management
The study and handling of program inputs in the selection of garbage collectors
ACM SIGOPS Operating Systems Review
A page fault equation for dynamic heap sizing
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Index-compact garbage collection
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Garbage collection auto-tuning for Java mapreduce on multi-cores
Proceedings of the international symposium on Memory management
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
An equation-based Heap Sizing Rule
Performance Evaluation
Hi-index | 0.00 |
This paper describes a novel method for dynamically switching between a Mark&Compact (M&C) and a Mark&Sweep (M&S) garbage collector in the generational memory system of a high performance Java virtual machine. A M&C collector reclaims space by sliding all live objects towards the beginning of the heap. A M&S collector de-allocates garbage objects in-place. In this paper, both algorithms are assumed to operate over the old generation of a generational memory system and on their own provide different trade-offs to the application that uses them: faster old collections but with slower young collections and the possibility of fragmentation (M&S) or slower old collections but with faster young collections and the guarantee to eliminate fragmentation (M&C). We propose Hot-Swapping, a technique for dynamically switching between these two algorithms, to attempt to achieve the "best of both worlds". Its introduction to the memory system of the virtual machine imposed minimal changes to the existing implementations of M&C and M&S and virtually no extra performance overhead. Experimental results, presented in the paper, show that this hybrid scheme can either outperform both algorithms, or is very close to the faster of the two (whether this is M&S or M&C), while never being the slowest.