将GLIBC malloc()M_MMAP_THRESHOLD增加到1GB的影响

时间:2018-09-24 08:58:26

标签: malloc glibc

我正在将 glibc(2.21版)用于页面大小为2MB和64MB的系统。但是,由于页面大小很大,因此会有更多的碎片。因此,我使用mallopt()将 M_MMAP_THRESHOLD 增大到32MB,但仍然有碎片。因此,我想将 M_MMAP_THRESHOLD 增加到1 GB。这对bin索引计算有什么影响吗?

1 个答案:

答案 0 :(得分:1)

这个问题是answered on the libc-help list

如果增加M_MMAP_THRESHOLD,还必须将堆大小增加到32 GiB(malloc / arena.c中的HEAP_MAX_SIZE)。 2 * DEFAULT_MMAP_THRESHOLD_MAX的默认值可能太小(假设DEFAULT_MMAP_THRESHOLD_MAX为2 GiB)。否则,对于2 GiB和HEAP_MAX_SIZE之间的分配请求,您将有很大的碎片。