Next: Discussion
Up: Measurements
Previous: Hummingbird 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.
|
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.
|
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.
|
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: Discussion
Up: Measurements
Previous: Hummingbird Measurements