2009年10月23日

memory pool 的高效实现(代码)

摘要: mpool.h#ifndef __febird_c_mpool_h__#define __febird_c_mpool_h__#ifdef __cplusplusextern "C" {#endif//------------------------------------------------------------------------------------------typedef void* (*chunk_alloc_ft)(struct chunk_allocator* self, size_t size);typedef void* (*chunk_re 阅读全文

posted @ 2009-10-23 03:01 能发波 阅读(246) 评论(0) 推荐(0)

memory pool 的高效实现

摘要: memory poolmalloc可以分配任意大小的内存,因此,在malloc内部,保存了一些簿记信息(至少有一个包含内存块尺寸的信息)。调用free时,可以正确释放。为了减少这些簿记开销,可以使用memory pool。根据使用情境,可以分为两种:1. 只分配固定大小的内存块,速度最快(normal path约10条机器指令)。2. 可分配不同大小的内存块,速度稍慢,但比malloc快得多,也无簿记开销。以下将分别说明mpoolmpool可分配不同尺寸的内存。大多数时刻,都在内部分配。销毁mpool时,会自动释放在mpool中未释放的内存。mpool内部有一个包含多个不同尺寸fixed_mp 阅读全文

posted @ 2009-10-23 02:40 能发波 阅读(226) 评论(0) 推荐(0)

导航