A method for automatic optimization of dynamic memory management in C++

Document type: Conference Papers
Peer reviewed: Yes
Author(s): Daniel Häggander, P Liden, Lars Lundberg
Title: A method for automatic optimization of dynamic memory management in C++
Conference name: 30th International Conference on Parallel Processing (ICPP 01)
Year: 2001
Pagination: 489-498
ISBN: 0-7695-1258-5
ISI number: 000171882100055
Organization: Blekinge Institute of Technology
Department: Department of Software Engineering and Computer Science (Institutionen för programvaruteknik och datavetenskap)
Dept. of Software Engineering and Computer Science S-372 25 Ronneby
+46 455 38 50 00
Language: English
Abstract: In C++, the memory allocator is often a bottleneck that severely limits performance and scalability on multiprocessor systems. The traditional solution is to optimize the C library memory allocation routines, An alternative is to attack the problem on the source code level, i.e. modify the applications source code. Such an approach makes it possible to achieve more efficient and customized memory management. To implement and maintain such source code optimizations is however both laborious and costly, since it is a manual procedure. Applications developed using object-oriented techniques, such as frameworks and design patterns, tend to use a great deal of dynamic memory to offer dynamic features. These features are mainly used for maintainability reasons, and temporal locality often characterizes the run-time behavior of the dynamic memory operations. We have implemented a pre-processor based method, named Amplify, which in a completely automated procedure optimizes (object-oriented) C++ applications to exploit the temporal locality in dynamic memory usage. Test results show that Amplify can obtain significant speed-up for synthetic applications and that it was useful for a commercial product.
Subject: Software Engineering\General