MemPerf: Profiling Allocator-Induced Performance Slowdowns

Zhou, Jin
Silvestro, Sam
Tang, Steven (Jiaxun)
Yang, Hanmei
Liu, Hongyu
Zeng, Guangming
Wu, Bo
Liu, Cong
Liu, Tongping
Journal Title
Journal ISSN
Volume Title
Association for Computing Machinery

The memory allocator plays a key role in the performance of applications, but none of the existing profilers can pinpoint performance slowdowns caused by a memory allocator. Consequently, programmers may spend time improving application code incorrectly or unnecessarily, achieving low or no performance improvement. This paper designs the first profiler—MemPerf—to identify allocator-induced performance slowdowns without comparing against another allocator. Based on the key observation that an allocator may impact the whole life-cycle of heap objects, including the accesses (or uses) of these objects, MemPerf proposes a life-cycle based detection to identify slowdowns caused by slow memory management operations and slow accesses separately. For the prior one, MemPerf proposes a thread-aware and type-aware performance modeling to identify slow management operations. For slow memory accesses, MemPerf utilizes a top-down approach to identify all possible reasons for slow memory accesses introduced by the allocator, mainly due to cache and TLB misses, and further proposes a unified method to identify them correctly and efficiently. Based on our extensive evaluation, MemPerf reports 98% medium and large allocator-reduced slowdowns (larger than 5%) correctly without reporting any false positives. MemPerf also pinpoints multiple known and unknown design issues in widely-used allocators.

memory allocator, performance slowdowns
Zhou, J., Silvestro, S., Tang, S., Yang, H., Liu, H., Zeng, G., . . . Liu, T. (2023). MemPerf: Profiling Allocator-Induced Performance Slowdowns. Proceedings of the ACM on Programming Languages, 7(OOPSLA2). doi:10.1145/3622848
Computer Science