# mpmalloc **Repository Path**: hong_master/mpmalloc ## Basic Information - **Project Name**: mpmalloc - **Description**: 基于内存池的内存分配实现,用于内存分配基本确定的场景 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 4 - **Created**: 2021-04-27 - **Last Updated**: 2022-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mpmalloc #### 介绍 基于内存池的内存分配实现,用于内存分配基本确定的场景 #### 软件架构 \brief 池化的内存分配算法 * 用于预分配的内存大小基本能确定的场合,采用内存池方式减小碎片化问题; * 需要自行适配内存池和读写锁、普通内存分配实现 * 依赖klibc的khash头文件,处理标准C库,无其它库依赖 * 无法从内存池里获取时,则使用普通方式(默认glibc)获取内存 * 注意: * 1.该方法最高效率时预分配场景基本确定,否则性能将下降; * 2.每次分配内存额外增加4字节元数据,对内存容量敏感的业务场景慎用; * 3.实测试性能,表明随机分配性能低于glibc... #### 安装教程 仅依赖pthread 和C标准库 #### 使用说明 mkdir build cd build cmake3 ../ make ../build_out/bin/memtest #### 参与贡献 **基于内存池的分配器优化算法** **摘要:**。堆内存随机分配容易形成内存碎片化,而碎片化对内存分配器性能有重要的影响。但是对于已知内存大小类型的小内存分配应用场景,可设计内存池化的分配器降低碎片化影响并提升分配性能。该分配器采用固定池和动态池相结合的方案,实现基础场景无锁设计,而极端分配场景使用读写锁动态拓展。针对内存分配块的查找性能优化,对已知类型采用哈希表快速查找,而随机类型通过优化折半和插值查找算法,使用混合区间查找固定内存块。最后,性能测试表明,对于已知固定类型分配请求,其性能整体上优于未池化的直接随机分配方案。 **关键词:**内存池; 内存分配器;哈希表查找;区间查找 **English** **Abstract:**. Key words:;;