Safety consideration for storage allocation optimizations
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The portable common runtime approach to interoperability
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Pitfalls of conservation garbage collection
Software—Practice & Experience
Compiling with continuations
Space efficient conservative garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Proper tail recursion and space efficiency
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
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)
Understanding memory allocation of scheme programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
On the type accuracy of garbage collection
Proceedings of the 2nd international symposium on Memory management
Java Native Interface: Programmer's Guide and Reference
Java Native Interface: Programmer's Guide and Reference
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Generational Garbage Collection without Temporary Space Leaks for Lazy Functional Languages
IWMM '95 Proceedings of the International Workshop on Memory Management
Incremental Collection of Mature Objects
IWMM '92 Proceedings of the International Workshop on Memory Management
Mostly accurate stack scanning
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Reducing pause time of conservative collectors
Proceedings of the 3rd international symposium on Memory management
Space efficient conservative garbage collection
ACM SIGPLAN Notices - Best of PLDI 1979-1999
A practical application of geometric semantics to static analysis of concurrent programs
CONCUR 2005 - Concurrency Theory
Smarter garbage collection with simplifiers
Proceedings of the 2006 workshop on Memory system performance and correctness
ACM Transactions on Programming Languages and Systems (TOPLAS)
Garbage collection in the next C++ standard
Proceedings of the 2009 international symposium on Memory management
Precise garbage collection for C
Proceedings of the 2009 international symposium on Memory management
KAL: kernel-assisted non-invasive memory leak tolerance with a general-purpose memory allocator
Software—Practice & Experience
Cross-compiling Android applications to the iPhone
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Space overhead bounds for dynamic memory management with partial compaction
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Space overhead bounds for dynamic memory management with partial compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Limitations of partial compaction: towards practical bounds
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Cross-compiling Java to JavaScript via tool-chaining
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Back to the future: fault-tolerant live update with time-traveling state transfer
LISA'13 Proceedings of the 27th international conference on Large Installation System Administration
Hi-index | 0.00 |
Conservative garbage collectors can automatically reclaim unused memory in the absence of precise pointer location information. If a location can possibly contain a pointer, it is treated by the collector as though it contained a pointer. Although it is commonly assumed that this can lead to unbounded space use due to misidentified pointers, such extreme space use is rarely observed in practice, and then generally only if the number of misidentified pointers is itself unbounded.We show that if the program manipulates only data structures satisfying a simple GC-robustness criterion, then a bounded number of misidentified pointers can at most result in increasing space usage by a constant factor. We argue that nearly all common data structures are already GC-robust, and it is typically easy to identify and replace those that are not. Thus it becomes feasible to prove space bounds on programs collected by mildly conservative garbage collectors, such as the one in [2]. The worst-case space overhead introduced by such mild conservatism is comparable to the worst-case fragmentation overhead for inherent in any non-moving storage allocator.The same GC-robustness criterion also ensures the absence of temporary space leaks of the kind discussed in [13] for generational garbage collectors.