【Linux】mallopt()调整malloc/new行为、控制内存分配

1、说明

mallopt()函数用来设置内存分配参数,比如设置malloc/new的底层是否调用mmap函数、是否使能内存紧凑分配等。

mallopt()属于标准C库 (libc);
编译时链接:-lc;
头文件为:#include
原型:int mallopt(int param, int value);

内存分配图
【Linux】mallopt()调整malloc/new行为、控制内存分配_第1张图片

2、参数详解

2.1 M_ARENA_MAX

Arena直译为:竞技场;当一个线程申请的堆时,会包含很多的信息,比如二进制位信息,多个malloc_chunk信息等,这些堆需要一个东东来管理,Arena就是管理线程中的这些堆的东东。

Arena默认数量与核心处理器数量有关:

32位系统中:Arena默认数量 = 2 * 内核数
64位系统中:Arena默认数量 = 8 * 内核数

当M_ARENA_MAX的值设置为0时,为默认值;
如果没有设置M_ARENA_MAX,则忽略该值,Arena的数量将有M_ARENA_TEST来决定。

你可能感兴趣的:(linux,linux)