Monday, February 18, 2002
11:00 AM
CSB 209
Emery Berger
U. Texas, Austin
Memory Management for High-Performance Applications
Fast and effective memory management is crucial for many applications, including web servers, database managers, and scientific codes. However, current memory managers do not provide adequate support for these applications on modern architectures, severely limiting their performance, scalability, and robustness.

In this talk, I describe how to design memory managers that support high-performance applications. I first address the software engineering challenges of building efficient memory managers. I then show how current general-purpose memory managers do not scale on multiprocessors, cause false sharing of heap objects, and systematically leak memory. I describe a fast, provably scalable general-purpose memory manager that solves these problems, improving performance by up to a factor of 60. Finally, I show how to support server applications that must tear down memory associated with terminated connections or transactions. I present a generalization of regions and heaps called reaps that supports teardown with higher performance and lower memory consumption than current approaches.