Abstract—Dynamic memory management is one of the most
expensive but ubiquitous operations in many C/C++ applications.
Additional features such as security checks, while desirable,
further worsen memory management overheads. With
advent of multicore architecture, it is important to investigate
how dynamic memory management overheads for sequential
applications can be reduced.
In this paper, we propose a new approach for accelerating
dynamic memory management on multicore architecture, by
offloading dynamic management functions to a separate thread
that we refer to as memory management thread (MMT).
We show that an efficient MMT design can give significant
performance improvement by extracting parallelism while being
agnostic to the underlying memory management library
algorithms and data structures. We also show how parallelism
provided by MMT can be beneficial for high overhead memory
management tasks, for example, security checks related to
memory management.
We evaluate MMT on heap allocation-intensive benchmarks
running on an Intel core 2 quad platform for two widelyused
memory allocators: Doug Lea’s and PHKmalloc allocators.
On average, MMT achieves a speedup ratio of 1.19×
for both allocators, while both the application and memory
management libraries are unmodified and are oblivious to the
parallelization scheme. For PHKmalloc with security checks
turned on, MMT reduces the security check overheads from
21% to only 1% on average.