// 创建内存池 /********************************************************************** 函数名称: ngx_create_pool 函数描述: 创建内存池,从堆中分配一块内存当作内存池 输入参数: size_t size:内存池SIZE ngx_log_t *log:日志指针 输出参数: 无 返回值: NULL:表示函数执行失败 非NULL :表示函数执行成功 其 他: 创建内存池后,将内存池的信息放到整个 分配内存的顶部,创建内存池后,实际可以内存是 分配的内存地址偏移内存池结构长度的后面部分 **********************************************************************/ ngx_pool_t * ngx_create_pool(size_t size, ngx_log_t *log) { ngx_pool_t *p; // 分配内存 16 字节对齐申请 p = ngx_memalign(NGX_POOL_ALIGNMENT, size, log); if (p == NULL) { return NULL; } // last 指向申请内存地址加上内存池头长度 p->d.last = (u_char *) p + sizeof(ngx_pool_
NGX 内存池实现
最新推荐文章于 2024-04-18 09:01:59 发布
本文详细介绍了NGX内存池的创建过程,包括ngx_create_pool函数的使用,以及内存的分配策略。当分配的内存小于内存池的最大可分配内存时,会从当前内存池的空闲空间中分配;否则,会尝试创建新的内存池块来满足大内存需求。通过内存池,实现了内存的高效管理和复用。
摘要由CSDN通过智能技术生成