Garbage collection in an uncooperative environment
Software—Practice & Experience
Live memory analysis for garbage collection in embedded systems
Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
An Estimate of the Store Size Necessary for Dynamic Storage Allocation
Journal of the ACM (JACM)
Bounds for Some Functions Concerning Dynamic Storage Allocation
Journal of the ACM (JACM)
Implementing an on-the-fly garbage collector for Java
Proceedings of the 2nd international symposium on Memory management
Automatic Accurate Live Memory Analysis for Garbage-Collected Languages
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Bounding space usage of conservative garbage collectors
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The hardness of cache conscious data placement
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An algorithm for parallel incremental compaction
Proceedings of the 3rd international symposium on Memory management
A real-time garbage collector with low overhead and consistent utilization
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
The space cost of lazy reference counting
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient parallel heap compaction algorithm
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
The Compressor: concurrent, incremental, and parallel compaction
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Stopless: a real-time garbage collector for multiprocessors
Proceedings of the 6th international symposium on Memory management
A study of concurrent real-time garbage collectors
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 2009 international symposium on Memory management
International Symposium on Memory Management
Live heap space analysis for languages with garbage collection
Proceedings of the 2009 international symposium on Memory management
Parametric heap usage analysis for functional programs
Proceedings of the 2009 international symposium on Memory management
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
The Garbage Collection Handbook: The Art of Automatic Memory Management
The Garbage Collection Handbook: The Art of Automatic Memory Management
Hi-index | 0.00 |
Dynamic memory allocation is ubiquitous in today's runtime environments. Allocation and deallocation of objects during program execution may cause fragmentation and foil the program's ability to allocate objects. Robson [1971] has shown that a worst-case scenario can create a space overhead within a factor of log n of the space that is actually required by the program, where n is the size of the largest possible object. Compaction can eliminate fragmentation, but is too costly to be run frequently. Many runtime systems employ partial compaction, in which only a small fraction of the allocated objects are moved. Partial compaction reduces some of the existing fragmentation at an acceptable cost. In this article we study the effectiveness of partial compaction and provide the first rigorous lower and upper bounds on its effectiveness in reducing fragmentation at a low cost.