malloc() and mmap()
Question Text
When does malloc() use mmap()?
Question Answers
When it allocates read-only memory
When it allocates zeroed memory
- When it allocates chunks of memory bigger than an internal threshold
- When the heap is full
Feedback
malloc uses both brk() and mmap(), but prefers mmap() for big chunks of memory (by default larger than 128 KB).
This value can be altered using mallopt() with the param argument set to M_MMAP_THRESHOLD.
These memory blocks are unlikely to be reused so they are not placed on heap to avoid memory fragmentation.