Check out the new USENIX Web site. next up previous
Next: Discussion Up: Measurements Previous: Hummingbird Measurements

Emacs Measurements

Table 4 shows the final heap size and the heap fragmentation at the end of the Emacs trace. It also shows the CPU consumption for running the malloc on the full trace.

Figure 7: Comparison of the heap size of nine mallocs when used with the Hummingbird dynamic memory activity trace. The Live memory line shows the actual live memory size.
\includegraphics{comparison.eps}


Table 3: Comparison of the heap size, fragmentation and CPU consumption at the end of the Hummingbird trace. The table is sorted by increasing fragmentation. Live memory at the end of the trace was 217.4 MB.
malloc package final heap % user time system time
name size (MB) fragmentation (sec.) (sec.)
PhK/BSD 283.8 30.5 448 11
Solaris default 291.7 34.7 360 9
GNU 308.3 41.8 455 17
Modified bin buddy 327.8 50.7 557 11
DougLea 392.6 80.6 641 21
Quickfit 518.9 138.7 457 12
CSRI 778.5 258.8 14171 29
Vmalloc 1364.7 527.7 384 52
Solaris 3X heap overflow -- -- --



Table 4: Comparison of the heap size, fragmentation and CPU consumption at the end of the Emacs trace. The table is sorted by increasing fragmentation. Live memory at the end of the trace was 132.9 MB.
malloc package final heap % user time system time
name size (MB) fragmentation (sec.) (sec.)
DougLea 136.48 2.69 74 4
CSRI 137.01 3.08 585 4
Quickfit 137.02 3.09 74 3
Vmalloc 137.36 3.35 75 4
PhK/BSD 137.76 3.65 78 4
Solaris default 137.76 3.65 76 4
GNU 161.41 21.44 78 5
Modified bin buddy 172.54 29.82 84 4
Solaris 3X 267.79 101.48 372 8


Figure 8: Comparison of the four best mallocs when used with the Hummingbird dynamic memory activity trace. Note that PhK/BSD was able to reduce the heap size on several occasions.
\includegraphics{comp_sol_gnu_bsd.eps}

Figure 9: Comparison of the heap size of nine mallocs when used with the Emacs dynamic memory activity trace. The Live memory line shows the actual live memory size.
\includegraphics{comparison.emacs.eps}

Figure 9 shows the heap size of the nine mallocs as a function of the time. The rightmost point in all graphs in Figure 9 is the final heap size shown in Table 4. Note that most mallocs except GNU, modified binary buddy and Solaris 3X caused very little fragmentation and are very similar to each other in that respect. The Solaris 3X again caused most fragmentation, which may indicate that its implementation is broken.


next up previous
Next: Discussion Up: Measurements Previous: Hummingbird Measurements