2001 FREENIX Track Technical Program - Abstract
Are Mallocs Free of Fragmentation?
Aniruddha Bohra, Rutgers University, and Eran Gabber, Lucent Technologies - Bell Labs
Malloc(3) is considered to be a robust building block.
However, we found that many malloc implementations
suffer from excessive heap fragmentation when used with Hummingbird,
a long-running application which stores a large number of
fixed-sized and variable-sized objects in dynamic memory.
This paper characterizes the dynamic memory activity pattern
of Hummingbird and GNU Emacs.
It compares the behavior of nine different mallocs
when used with Hummingbird and GNU Emacs dynamic memory activity traces.
In the Hummingbird case,
the best malloc caused 30.5% fragmentation
(increased heap size above the amount of live memory),
while the worst malloc caused a heap overflow.
In the GNU Emacs case, the best malloc caused 2.69% fragmentation,
and the worst one caused 101.5% fragmentation.