Check out the new USENIX Web site. next up previous
Next: Introduction Up: Are Mallocs Free of Previous: Are Mallocs Free of

Abstract

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.