malloc() UNIX sbrk()/brk(). mmap() sbrk(). glibc malloc() (, , Ubuntu 14.04) sbrk() mmap(), , , , glibc .
glibc sbrk() mmap(). M_MMAP_THRESHOLD. 128K. , 135152 , ~ 128K. , 1 , 128 . , segfault , .
M_MAP_THRESHOLD mallopt(), .
M_MMAP_THRESHOLD
, ( ) M_MMAP_THRESHOLD, mmap (2) sbrk (2).
mmap (2) : . ( , .) , mmap (2): ; mmap (2) ; , (2). 128 * 1024 M_MMAP_THRESHOLD.
0. DEFAULT_MMAP_THRESHOLD_MAX: 512 * 1024 32- 4 * 1024 * 1024 * sizeof (long) 64- .
. glibc mmap. 128 * 1024, DEFAULT_MMAP_THRESHOLD_MAX , . mmap , mmap. mmap , - M_TRIM_THRESHOLD, M_TOP_PAD, M_MMAP_THRESHOLD M_MMAP_MAX .
, :
#include<malloc.h>
mallopt(M_MMAP_THRESHOLD, 0);
malloc(), , , . - , C , undefined , . - ; -)