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

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

相关推荐

  1. CSS 控制溢出行为

    2024-03-12 04:44:02       26 阅读
  2. 如何调整Node内存限制

    2024-03-12 04:44:02       42 阅读
  3. C#:内存分配

    2024-03-12 04:44:02       46 阅读
  4. golang 的内存分配

    2024-03-12 04:44:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 04:44:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 04:44:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 04:44:02       87 阅读
  4. Python语言-面向对象

    2024-03-12 04:44:02       96 阅读

热门阅读

  1. oracle 19c数据库联机备份与恢复

    2024-03-12 04:44:02       44 阅读
  2. 一些使用 Golang 实现的反沙箱技术 - Anti-Sandbox-Go

    2024-03-12 04:44:02       38 阅读
  3. OpenCV-环境搭建及基本IO接口

    2024-03-12 04:44:02       40 阅读
  4. 96.Go设计优雅的错误处理(带堆栈信息)

    2024-03-12 04:44:02       38 阅读
  5. Vue 双向数据绑定

    2024-03-12 04:44:02       40 阅读
  6. 开发指南002-前后端信息交互规范-返回值定义

    2024-03-12 04:44:02       49 阅读
  7. 常用的推荐算法

    2024-03-12 04:44:02       46 阅读