手写内存池
概要
纯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