A Customisable Memory Management Framework
Giuseppe Attardi and Tito Flagella
Dipartimento di Informatica
Universita` di Pisa
Corso Italia 40
I-56125 Pisa, Italy
{attardi,tito}@di.unipi.it
Abstract
Memory management is a critical issue for many large object-oriented
applications, but in C++ only explicit memory reclamation through the
delete operator is generally available. We analyse different
possibilities for memory management in C++ and present a dynamic
memory management framework which can be customised to the need of
specific applications. The framework allows full integration and
coexistence of different memory management techniques. The
Customisable Memory Management (CMM) is based on a primary collector
which exploits an evolution of Bartlett's mostly copying garbage
collector. Specialised collectors can be built for separate memory
heaps. A Heap class encapsulates the allocation strategy for each
heap. We show how to emulate different garbage collection styles or
user-specific memory management techniques. The CMM is implemented in
C++ without any special support in the language or the compiler. The
techniques used in the CMM are general enough to be applicable also to
other languages.
Download the full text of this paper in
ASCII (50,402 bytes) and
POSTSCRIPT (216,355 bytes) form.
To Become a USENIX Member, please see our
Membership Information.