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



我正在使用glibc(版本2.21(作为页面大小(2MB和64MB(的系统。但是对于这个非常大的页面大小,有更多的碎片。所以我使用 mallopt(( 将M_MMAP_THRESHOLD增加到 32MB,仍然存在碎片。所以我想将M_MMAP_THRESHOLD增加到 1 GB。这对 bin 指数计算有什么影响吗?

这个问题在libc帮助列表中得到了回答:

如果增加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之间的分配请求,您将有大量碎片。

最新更新