(libc.info.gz) Efficiency and Malloc
Info Catalog
(libc.info.gz) Allocating Cleared Space
(libc.info.gz) Unconstrained Allocation
(libc.info.gz) Aligned Memory Blocks
3.2.2.6 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.
Info Catalog
(libc.info.gz) Allocating Cleared Space
(libc.info.gz) Unconstrained Allocation
(libc.info.gz) Aligned Memory Blocks
automatically generated by
info2html