- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.csdn.net/qifengzou
- 日期:2012.11.18 凌晨02:00
- 转载请注明来自"祁峰"的CSDN博客
1 引言
本人在转发的博文《内存池的设计和实现》中,详细阐述了系统默认内存分配函数malloc/free的缺点,以及进行内存池设计的原因,在此不再赘述。通过对Nginx内存池以及《内存池的设计和实现》的分析后,现提出一种性能更优(申请/释放内存时间复杂度为O(1))的内存池的设计方案。如有不妥之处,欢迎指正!如有其他的内存池的设计方案,欢迎共同分享和探讨。【注意:LINUX内核、NGINX、MEMCACHE使用SLAB机制内存分配方案; 还有Jemalloc内存池与系统内存申请释放相兼容】
2 结构设计
2.1 内存池结构
/* 内存池结构体 */
typedef struct
{
int unitsize; /* 内存单元大小,即unit的大小 */
int initnum;