Skip to main content
Popular Press
CRAMM: Virtual Memory Support for Garbage-Collected Applications
7th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’06) (2006)
  • Eliot B. Moss, University of Massachusetts-Amherst

Existing virtual memory systems usually work well with applications written in C and C++, but they do not provide adequate support for garbage-collected applications. The performance of garbage-collected applications is sensitive to heap size. Larger heaps reduce the frequency of garbage collections, making them run several times faster. However, if the heap is too large to fit in the available RAM, garbage collection can trigger thrashing. Existing Java virtual machines attempt to adapt their application heap sizes to fit in RAM, but suffer performance degradations of up to 94% when subjected to bursts of memory pressure. We present CRAMM (Cooperative Robust Automatic Memory Management), a system that solves these problems. CRAMM consists of two parts: (1) a new virtual memory system that collects detailed reference information for (2) an analytical model tailored to the underlying garbage collection algorithm. The CRAMM virtual memory system tracks recent reference behavior with low overhead. The CRAMM heap sizing model uses this information to compute a heap size that maximizes throughput while minimizing paging. We present extensive empirical results demonstrating CRAMM’s ability to maintain high performance in the face of changing application and system load.

Publication Date
November, 2006
Citation Information
Eliot B. Moss. "CRAMM: Virtual Memory Support for Garbage-Collected Applications" 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’06) (2006)
Available at: