Content 0
内存池结构 1
1 ngx_pool_t 结构 1
2 其他相关结构 1
3 ngx_pool_t 的逻辑结构 2
内存池操作 2
1 创建内存池 2
2 销毁内存池 2
3 重置内存池 2
4 分配内存 2
1 ngx_palloc()函数分析 2
2 ngx_palloc_block()函数分析 2
5 释放内存 2
6 注册cleanup 2
7 内存池的物理结构 3
一个例子 3
1 代码 3
2 如何编译 3
3 运行结果 4
序 nginx 对内存的管理由其自己实现的内存池结构ngx_pool_t 来完成,本文重点叙述nginx 的内存管理
nginx 内存管理相关文件: (1)
/src/os/unix/ngx_alloc
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 的幂
/src/core/ngx_palloc
c 封装创建/销毁内存池,从内存池分配空间等函数
表示 nginx-1
4 代码目录,本文为/usr/src/nginx-1
内存池结构 nginx 对内存的管理均统一完成,例如,在特定的生命周期统一建立内存池(如main 函数系统启动初期即分