GNU Info

Info Node: (libc.info)Efficiency and Malloc

(libc.info)Efficiency and Malloc


Next: Aligned Memory Blocks Prev: Allocating Cleared Space Up: Unconstrained Allocation
Enter node , (file) or (file)node

Efficiency Considerations for `malloc'
......................................

   As opposed to other versions, the `malloc' in the GNU C Library does
not round up block sizes to powers of two, neither for large nor for
small sizes.  Neighboring chunks can be coalesced on a `free' no matter
what their size is.  This makes the implementation suitable for all
kinds of allocation patterns without generally incurring high memory
waste through fragmentation.

   Very large blocks (much larger than a page) are allocated with
`mmap' (anonymous or via `/dev/zero') by this implementation.  This has
the great advantage that these chunks are returned to the system
immediately when they are freed.  Therefore, it cannot happen that a
large chunk becomes "locked" in between smaller ones and even after
calling `free' wastes memory.  The size threshold for `mmap' to be used
can be adjusted with `mallopt'.  The use of `mmap' can also be disabled
completely.


automatically generated by info2www version 1.2.2.9