手写简单内存池(c和c++)

手写内存池

概要

纯c和cpp实现的简单内存池,均是申请固定大小的内存块

内存池使用以及作用

内存池技术是一种优化内存管理的方法,它通过预先分配一块连续的内存空间,可以将其设置成固定大小块,也可以随机分配(本文是采用固定大小内存块)。之后在程序中使用这些内存块,这样可以减少频繁的动态内存分配和释放操作,从而提高性能和效率。

内存块的作用主要有两点:一是使用内存池技术可以避免内存碎片化问题,并减少了系统调用次数,节省了时间开销。二是内存池还可以提供更好的局部性,因为相邻的对象通常在物理上也是相邻的,这有助于提高缓存命中率,能够提升分配和归还的速度。

纯c实现内存池

typedef struct mempool_s
{
   
   
    int block_size;
    int free_count;

    char* free_ptr;
    char* mem;
}mempool_t;

内存池结构体,包括内存池的固定块大小,空闲块个数,指向空闲区域的头指针以及指向整个内存池的指针。

主要接口

int mp_init(mempool_t* m,int size){
   
   
    if(!m)return -1;
    if(size<16)size=16;
    m->block_size=size;
    m->mem=(char*)malloc(MEM_PAGE_SIZE);
    if(!m->mem)return -1;
    m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值