-
Both malloc and free should be fast.
-
Together, malloc and free should make efficient use of the heap segment.
If the heap segment becomes too fragmented, malloc can increase its size (recall the sbrk function).
However, the external fragmentation in the heap segment represents an inefficient use of the virtual memory (and backing physical) resources.
These two requirements are in conflict!