学前思考🤔
- 为什么要实现内存池?解决了什么问题?为什么会出现这些问题?如何去解决这些问题?
- 怎样实现内存池即原理是什么?内存池的本质是什么?
- 如何使用内存池?
- Nginx在实现内存池中使用了哪些tips?又哪些Nginx独有的特性?
- 若是让自己来实现内存池,应该怎样做?
- 思考内存池有哪些使用场景?又如何进行联想拓展?
背景与介绍
原理与实现
本质:一组数据结构
数据结构图
操作集
API
- 创建内存池 ngx_create_pool
- 销毁内存池 ngx_destroy_pool
- 重置内存池 ngx_reset_pool
- 分配内存 ngx_palloc/ngx_pnalloc/ngx_pcalloc/ngx_pmemalign
- 释放内存(仅大块内存) ngx_pfree