本博客(
http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
Content
0. 序
1. 内存池结构
1.1 ngx_pool_t结构
1.2 其他相关结构
1.3 ngx_pool_t的逻辑结构
2. 内存池操作
2.1 创建内存池
2.2 销毁内存池
2.3 重置内存池
2.4 分配内存
2.4.1 ngx_palloc()函数分析
2.4.2 ngx_palloc_block()函数分析
2.5 释放内存
2.6 注册cleanup
2.7 内存池的物理结构
3. 一个例子
3.1 代码
3.2 如何编译
3.3 运行结果
4. 小结
5. 致谢
0. 序
nginx对内存的管理由其自己实现的内存池结构ngx_pool_t来完成,本文重点叙述nginx的内存管理。
nginx内存管理相关文件:
(1) ./src/os/unix/ngx_alloc.h/.c
- 内存相关的操作,封装了最基本的内存分配函数
- 如free/malloc/memalign/posix_memalign,分别被封装为ngx_free,ngx_alloc/ngx_calloc, ngx_memalign
-
- ngx_alloc:封装malloc分配内存
- ngx_calloc:封装malloc分配内存,并初始化空间内容为0
- ngx_memalign:返回基于一个指定alignment的大小为size的内存空间,且其地址为alignment的整数倍,alignment为2的幂。
(2) ./src/core/ngx_palloc.h/.c
- 封装创建/销毁内存池,从内存池分配空间等函数