Skip to content

LiangWang-bme/memPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

阅读nginx源码,学习优秀的开源项目,优秀的设计思想,并简单移植的nginx内存池源码。

如需详细了解nginx,请移步https://nginx.org/en/。

nginx源码使用C语言,移植的内存池使用C++封装了一个类。

文件描述

ngx_memPool.h 内存池类对象的描述

ngx_memPool.cpp 类成员方法的测试

test_ngxmemPool.h 对移植的内存池进行测试使用。

类成员方法的说明 ;

void* ngx_create_pool(size_t size); //创建内存池,内存块大小最大为4K大小。

void* ngx_palloc(size_t size); //分配内存,字节对齐 void* ngx_pnalloc(size_t size); //分配内存,无字节对齐 void* ngx_pcalloc(size_t size); //分配内存,实际上调用的是ngx_palloc,初始化为0 void ngx_free(void* p); //释放大块内存 void ngx_reset_pool(); //重置内存池 void ngx_destroy_pool(); //销毁内存池 ngx_pool_cleanup_s* ngx_pool_cleanup_add(size_t size); //添加回调清理函数

void* ngx_palloc_small(size_t size, ngx_uint_t align); //分配小块内存函数 void* ngx_palloc_large(size_t size); // 分配大块内存函数 void* ngx_palloc_block(size_t size); //再次分配小块内存函数带调用

下面是内存池的一些具体函数说明

About

nginx memory Pool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages