TY - GEN
T1 - Two memory allocators that use hints to improve locality
AU - Jula, Alin
AU - Rauchwerger, Lawrence
PY - 2009
Y1 - 2009
N2 - Dynamic memory allocators affect an application's performance through their data layout quality. They can use an application's allocation hints to improve the spatial locality of this layout. However, a practical approach needs to be automatic, without user intervention. In this paper we present two locality improving allocators, that use allocation hints provided automatically from the C++ STL library to improve an application's spatial locality. When compared to state-of-the-art allocators on seven real world applications, our allocators run on average 7% faster than the Lea allocator, and 17% faster than the FreeBSD's allocator, with the same memory fragmentation as the Lea allocator, one of the best allocators. While considering locality as an important goal, locality improving allocators must not abandon the existing constraints of fast allocation speed and low fragmentation. These constraints further challenge their design and implementation.We experimentally show that within a memory allocator, allocation speed, memory fragmentation, and spatial locality compete with each other in a game of rock, paper, scissors: when one tries to improve one trait, the others suffer. We conclude that our allocators achieve a goodbalance of these traits, and they can easily be adjusted to optimize the most important trait for each application.
AB - Dynamic memory allocators affect an application's performance through their data layout quality. They can use an application's allocation hints to improve the spatial locality of this layout. However, a practical approach needs to be automatic, without user intervention. In this paper we present two locality improving allocators, that use allocation hints provided automatically from the C++ STL library to improve an application's spatial locality. When compared to state-of-the-art allocators on seven real world applications, our allocators run on average 7% faster than the Lea allocator, and 17% faster than the FreeBSD's allocator, with the same memory fragmentation as the Lea allocator, one of the best allocators. While considering locality as an important goal, locality improving allocators must not abandon the existing constraints of fast allocation speed and low fragmentation. These constraints further challenge their design and implementation.We experimentally show that within a memory allocator, allocation speed, memory fragmentation, and spatial locality compete with each other in a game of rock, paper, scissors: when one tries to improve one trait, the others suffer. We conclude that our allocators achieve a goodbalance of these traits, and they can easily be adjusted to optimize the most important trait for each application.
KW - Automatic locality improvement
KW - C++ STL allocation
KW - Cache-conscious
KW - Dynamic memory management
KW - Memory fragmentation.
KW - Page-conscious
KW - Spatial locality
KW - Temporal locality
UR - http://www.scopus.com/inward/record.url?scp=70450228799&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70450228799&partnerID=8YFLogxK
U2 - 10.1145/1542431.1542447
DO - 10.1145/1542431.1542447
M3 - Conference contribution
AN - SCOPUS:70450228799
SN - 9781605583471
T3 - International Symposium on Memory Management, ISMM
SP - 109
EP - 118
BT - ISMM'09 - Proceedings of the 2009 ACM SIGPLAN International Symposium on Memory Management
T2 - 2009 ACM SIGPLAN International Symposium on Memory Management, ISMM'09
Y2 - 19 June 2009 through 20 June 2009
ER -