洞察纵观鸿蒙next版本,如何凭借FinClip加强小程序的跨平台管理,确保企业在数字化转型中的高效运营和数据安全?
801
2022-11-03
SimpleMalloc是一个针对于小内存(小于256字节)的内存分配管理器
SimpleMalloc
小内存分配管理器
简介
SimpleMalloc是一个针对于小内存(小于256字节)的内存分配管理器。 使用c语言实现。 实现上参考了python源码,与SGI STL中二级内存分配器的设计。
详细设计
SimpleMalloc 是一个具有多层次缓存的内存分配器。 在SimpleMalloc中,内存角色按照尺寸从小到大分别是:block,pool,pond。
block 是用户可以获取并自由访问的内存区域。block的大小总是8字节的整数倍。
pool 是block的集合,相当于block的容器,每一个pool的尺寸是4k字节,即为一个内存页的大小,这可以加速系统级内存分配。 此外每一个pool的起始地址一定是pool尺寸的整数倍。这样有助于通过block的地址迅速定位block所在的pool。
最后pond 的大小是256k字节,作为pool的容器,每个pond 包含了 63个pool,这是因为pond_header 和pool内存对齐的影响。
详细设计图如下:
使用教程
编译
cd YourPath/SimpleMallocmake
得到静态库 libsmpmalloc.a。
使用
#include "simple_malloc.h"int main(){ simple_install(); //初始化全局数据结构 //申请内存 void * p = simple_malloc(11); // 更改内存大小 void * newp= simple_realloc(p, 12); //释放内存 simple_free(p); simple_uninstall(); //释放全局数据结构内存}
测试
cd YourPath/SimpleMalloc/SimpleMallocTestmake./test
测试内容见 SimpleMallocTest/test.c
TODO LIST
压力与性能测试增加对mmap的支持
DONE LIST
makefile
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~