Garbage collection in an uncooperative environment
Software—Practice & Experience
Fast allocation and deallocation of memory based on object lifetimes
Software—Practice & Experience
Improving the cache locality of memory allocation
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Using lifetime predictors to improve memory allocation performance
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
CustoMalloc: efficient synthesized memory allocators
Software—Practice & Experience
Memory allocation costs in large C and C++ programs
Software—Practice & Experience
Better static memory management: improving region-based analysis of higher-order languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
From region inference to von Neumann machines via region representation inference
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Region-based memory management
Information and Computation
Managing Reentrant Structures Using Reference Counts
ACM Transactions on Programming Languages and Systems (TOPLAS)
List processing in real time on a serial computer
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
Communications of the ACM
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
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
Portable, modular expression of locality
Portable, modular expression of locality
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
EROS: a fast capability system
Proceedings of the seventeenth ACM symposium on Operating systems principles
Bulk file I/O extensions to Java
Proceedings of the ACM 2000 conference on Java Grande
Automated data-member layout of heap objects to improve memory-hierarchy performance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-preserving garbage collectors
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Composing high-performance memory allocators
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
On regions and linear types (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Understanding the connectivity of heap objects
Proceedings of the 3rd international symposium on Memory management
An adaptive, region-based allocator for java
Proceedings of the 3rd international symposium on Memory management
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Combining region inference and garbage collection
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Beltway: getting around garbage collection gridlock
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Region-based memory management in cyclone
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Ensuring code safety without runtime checks for real-time control systems
CASES '02 Proceedings of the 2002 international conference on Compilers, architecture, and synthesis for embedded systems
Reconsidering custom memory allocation
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An Implementation of Scoped Memory for Real-Time Java
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Memory safety without runtime checks or garbage collection
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Stack allocation and synchronization optimizations for Java using escape analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Connectivity-based garbage collection
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A Retrospective on Region-Based Memory Management
Higher-Order and Symbolic Computation
Region inference for an object-oriented language
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Garbage collection for embedded systems
Proceedings of the 4th ACM international conference on Embedded software
Finding and preventing run-time error handling mistakes
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic selection of application-specific garbage collectors
Proceedings of the 4th international symposium on Memory management
Region analysis and transformation for Java programs
Proceedings of the 4th international symposium on Memory management
Bisimilarity for the Region Calculus
Higher-Order and Symbolic Computation
Memory safety without garbage collection for embedded applications
ACM Transactions on Embedded Computing Systems (TECS)
Automatic pool allocation: improving performance by controlling data structure layout in the heap
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
The KaffeOS Java runtime system
ACM Transactions on Programming Languages and Systems (TOPLAS)
Segment protection for embedded systems using run-time checks
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
Quantifying the performance of garbage collection vs. explicit memory management
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable locality-conscious multithreaded memory allocation
Proceedings of the 5th international symposium on Memory management
SAFECode: enforcing alias analysis for weakly typed languages
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems
Integration, the VLSI Journal - Special issue: Low-power design techniques
Systematic dynamic memory management design methodology for reduced memory footprint
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Application-specific garbage collection
Journal of Systems and Software
Scrash: a system for generating secure crash information
SSYM'03 Proceedings of the 12th conference on USENIX Security Symposium - Volume 12
Shredding your garbage: reducing data lifetime through secure deallocation
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
Isla Vista Heap Sizing: Using Feedback to Avoid Paging
Proceedings of the International Symposium on Code Generation and Optimization
Data layouts for object-oriented programs
Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Large-scale analysis of format string vulnerabilities in Debian Linux
Proceedings of the 2007 workshop on Programming languages and analysis for security
A DSL approach for object memory management of small devices
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Exceptional situations and program reliability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conditional correlation analysis for safe region-based memory management
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
A DSL approach for object memory management of small devices
Proceedings of the 4th workshop on Programming languages and operating systems
Two memory allocators that use hints to improve locality
Proceedings of the 2009 international symposium on Memory management
SoftBound: highly compatible and complete spatial memory safety for c
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
A study of memory management for web-based applications on multicore processors
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Journal of Parallel and Distributed Computing
Memory management thread for heap allocation intensive sequential applications
Proceedings of the 10th workshop on MEmory performance: DEaling with Applications, systems and architecture
Lightweight module isolation for sensor nodes
Proceedings of the First Workshop on Virtualization in Mobile Computing
Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems
Integration, the VLSI Journal - Special issue: Low-power design techniques
Custom memory allocation for free
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Towards an analysis of race carrier conditions in real-time java
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Short-term memory for self-collecting mutators
Proceedings of the international symposium on Memory management
Separation logic + superposition calculus = heap theorem prover
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Offline GC: trashing reachable objects on tiny devices
Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems
Exception-Handling bugs in java and a language extension to avoid them
Advanced Topics in Exception Handling Techniques
Memory management for many-core processors with software configurable locality policies
Proceedings of the 2012 international symposium on Memory Management
AS-GC: an efficient generational garbage collector for java application servers
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Compilation queuing and graph caching for dynamic compilers
Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
A bloat-aware design for big data applications
Proceedings of the 2013 international symposium on memory management
DRASync: distributed region-based memory allocation and synchronization
Proceedings of the 20th European MPI Users' Group Meeting
OOPSLA 2002: Reconsidering custom memory allocation
ACM SIGPLAN Notices - Supplemental issue
Location types for safe programming with near and far references
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Much research has been devoted to studies of and algorithms for memory management based on garbage collection or explicit allocation and deallocation. An alternative approach, region-based memory management, has been known for decades, but has not been well-studied. In a region-based system each allocation specifies a region, and memory is reclaimed by destroying a region, freeing all the storage allocated therein. We show that on a suite of allocation-intensive C programs, regions are competitive with malloc/free and sometimes substantially faster. We also show that regions support safe memory management with low overhead. Experience with our benchmarks suggests that modifying many existing programs to use regions is not difficult.