Welcome to the proceedings of the Fourth ACM SIGPLAN International Symposium on Memory Management (ISMM 2004). ISMM 2004 was held on October 24th and 25th in Vancouver, Canada and this volume contains the 15 papers presented at the symposium. The ISMM conferences are a forum for research into all aspects of memory management. Proceedings of prior ISMM conferences (1998 in Vancouver, Canada; 2000 in Minneapolis, MN; 2002 in Berlin, Germany) were published by the Association of Computing Machinery. Proceedings of IWMM workshops (1992 in St. Malo, France; 1995 in Kinross, Scotland) which were the predecessor to ISMM are available from Springer-Verlag.
The papers presented here were selected by the program committee out of 43 submissions. Each submission was reviewed by at least 3 PC members. Submissions that included a program committee member or the general chair as an author received an additional review. The submissions were judged based on scientific merit, originality, relevance, and presentation. The reviews were discussed and papers accepted during a full-day meeting attended by the full program committee (two members participated via phone).
Proceeding Downloads
Message analysis-guided allocation and low-pause incremental garbage collection in a concurrent language
We present a memory management scheme for a concurrent programming language where communication occurs using message-passing with copying semantics. The runtime system is built around process-local heaps, which frees the memory manager from redundant ...
Write barrier elision for concurrent garbage collectors
Concurrent garbage collectors require write barriers to preserve consistency, but these barriers impose significant direct and indirect costs. While there has been a lot of work on optimizing write barriers, we present the first study of their elision ...
Mostly concurrent compaction for mark-sweep GC
A memory manager that does not move objects may suffer from memory <i>fragmentation</i>. <i>Compaction</i> is an efficient, and sometimes inevitable, mechanism for reducing fragmentation. A Mark-Sweep garbage collector must occasionally execute a ...
Garbage-first garbage collection
<i>Garbage-First</i> is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability, while achieving high throughput. Whole-heap operations, such as global marking, are ...
Dynamic selection of application-specific garbage collectors
Much prior work has shown that the performance enabled by garbage collection (GC) systems is highly dependent upon the behavior of the application as well as on the available resources. That is, no single GC enables the best performance for all programs ...
Automatic heap sizing: taking real memory into account
Heap size has a huge impact on the performance of garbage collected applications. A heap that barely meets the application's needs causes excessive GC overhead, while a heap that exceeds physical memory induces paging. Choosing the best heap size <i>a ...
Experience with safe manual memory-management in cyclone
The goal of the Cyclone project is to investigate type safety for low-level languages such as C. Our most difficult challenge has been providing programmers control over memory management while retaining type safety. This paper reports on our experience ...
Region analysis and transformation for Java programs
This paper presents a region analysis and transformation framework for Java programs. Given an input Java program, the compiler automatically translates it into an equivalent output program with region-based memory management. The generated program ...
Experiments on the effectiveness of an automatic insertion of memory reuses into ML-like programs
We present extensive experimental results on our static analysis and source-level transformation [12, 11] that adds explicit memory-reuse commands into ML program text.
Our analysis and transformation cost is negligible (1,582 to 29,000 lines per ...
General adaptive replacement policies
We propose a general scheme for creating adaptive replacement policies with good performance and strong theoretical guarantees. Specifically, we show how to combine any two existing replacement policies so that the resulting policy provably can never ...
Memory accounting without partitions
Operating systems account for memory consumption and allow for termination at the level of individual processes. As a result, if one process consumes too much memory, it can be terminated without damaging the rest of the system. This same capability can ...
Field level analysis for heap space optimization in embedded java environments
Memory constraint presents one of the critical challenges for embedded software writers. While circuit-level solutions based on cramming as many bits as possible into the smallest area possible are certainly important, memory-conscious software can ...
Barriers: friend or foe?
Modern garbage collectors rely on read and write barriers imposed on heap accesses by the mutator, to keep track of references between different regions of the garbage collected heap, and to synchronize actions of the mutator with those of the ...
Dynamic object sampling for pretenuring
Many state-of-the-art garbage collectors are generational, collecting the young nursery objects more frequently than old objects. These collectors perform well because young objects tend to die at a higher rate than old ones. However, these collectors ...
Exploring the barrier to entry: incremental generational garbage collection for Haskell
We document the desi n and implementation of a "production" incremental garbage collector for GHC 6.2.It builds on our earlier work (Non-stop Haskell)that exploited GHC's dynamic dispatch mechanism to hijack object code pointers so that objects in to-...
- Proceedings of the 4th international symposium on Memory management