Memory management presents significant and topical research challenges. Large and long-lived applications of commercial import are increasingly developed using garbage-collected languages (most notably Java) in order to take advantage of the benefits they bestow. However, state-of-the-art generational and incremental techniques do not always meet the scalability criteria that such applications require, especially in terms of throughput, efficient use of heap space, pause time guarantees and, more interestingly, a combination of these. Techniques that cannot recycle memory without examining all live objects, whether in occasional full-heap collections (generational) or continuously (albeit in bounded increments), become inadequate as applications move towards gigabyte heap-sizes. At the other end of the spectrum, there is also growing interest in embedded and real-time sofware using object-oriented, garbage-collected languages. Here the challenges are to reduce the foot-print of the heap manager, to access memory power-efficiently and to guarantee response time.
Nevertheless, despite the ever increasing popularity and deployment of such languages, and the advances made in the development of efficient garbage collectors, misunderstandings or folklore based on problems of a quarter of a century ago persist. This combination of the critical role of garbage collection for the performance of modern programming languages and the lack of experience in its deployment highlights the need to improve the transfer of this technology from academia and research laboratories to deployed products.
Developers' experience of automatic memory management systems is complemented by researchers' need for better intuition of `object demographics' - how objects behave, their interactions and their lifetimes. Deficiencies of current solutions are often only revealed by industrial-scale applications and some applications are already reaching the limits of current garbage collection technology. Researchers need to acquire deeper understanding of the behaviour of real programs, under real loads, by real users in order to advance the development of efficient garbage collectors, capable of being deployed in differing contexts; synthetic analyses are not sufficient.
This project seeks to address this duality by bringing together industrial and academic partners with complementary expertise. Developers and users possess real applications that throw up the significant and interesting new problems that researchers need in order to advance the field of memory management. Researchers have the experience of efficient techniques and solutions that can be deployed by developers. We define the field of memory management broadly to include
![]() |
To create a UK forum in the field of memory management in order to develop expertise and strengthen the UK's position in this area. |
![]() |
To involve participants from key UK organisations and universities. |
![]() |
To collate and publish the exchange of know-how in a way that will improve the competitiveness of both developers and users of modern programming languages in the UK. |
![]() |
To establish a virtual centre of excellence
that will provide a variety of communication mechanisms
(both electronic and physical) in order to:
|
![]() |
To develop and improve standards by which work is reported, thereby allowing work to be more accurately compared and reproduced. Examples under this heading include the collection of standard benchmark sets and program traces, and the dissemination of specification techniques and tools to generate such traces in portable formats. |
![]() |
To support training of developers and postgraduate students through workshops, discussions with other researchers, exchanges, and opportunities to improve presentation skills and promote their work. |
Problems with this page?
Contact the mm-net webmaster
Last modified Tue Jan 8 17:45:09 GMT 2002