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

166 篇文章 ¥69.90 ¥99.00
本文详细介绍了Linux中mallopt()函数的用途,用于调整内存分配参数,如malloc/new的行为。讨论了包括M_ARENA_MAX、M_MMAP_THRESHOLD等在内的多个参数,这些参数影响内存分配策略,如竞技场数量、内存检测行为和mmap使用。通过设置这些参数,可以优化内存使用和提高性能。

1、说明

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

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

内存分配图
在这里插入图片描述

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来决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值