Home research People General Info Seminars Resources Intranet

Alin Jula, Lawrence Rauchwerger, "Balancing Allocation Speed, Locality and Fragmentation in a Locality Improving Allocator," Technical Report, TR08-002, Department of Computer Science and Engineering, Texas A&M University, Feb 2008.
Technical Report(pdf, abstract)

The performance of memory allocators is a significant contributor to the overall performance of dynamic applications. A good memory allocator is fast, maximizes locality of access and minimizes fragmentation. In this paper we first introduce two novel memory allocators, TP and Medius, which can be tuned to optimize the three characteristics of memory allocation. These allocators can take locality enhancing hints provided automatically by the C++ STL containers used in our benchmark applications. Our TP allocator reduces the execution time of seven significant programs, by an average of 7% and 17% respectively, when compared to state-of-the-art allocators, Doug Lea's malloc and FreeBSD's PHKmalloc. We then compare the capability of various memory allocators to optimize allocation speed, locality and fragmentation. We experimentally show that these optimization goals are highly correlated and antagonistic. This means that the performance of allocators can only be the result of a trade-off between the optimization of these three performance goals. Thus we can improve overall performance by biasing our optimization towards the characteristic that matters the most (allocation speed, locality, fragmentation) for the application and computer system at hand. Our new allocators (TP and Medius) allow such selective optimization.