学前思考🤔

  1. 为什么要实现内存池?解决了什么问题?为什么会出现这些问题?如何去解决这些问题?
  2. 怎样实现内存池即原理是什么?内存池的本质是什么?
  3. 如何使用内存池?
  4. Nginx在实现内存池中使用了哪些tips?又哪些Nginx独有的特性?
  5. 若是让自己来实现内存池,应该怎样做?
  6. 思考内存池有哪些使用场景?又如何进行联想拓展?

背景与介绍

原理与实现

本质:一组数据结构

数据结构图

操作集

API

  1. 创建内存池 ngx_create_pool
  2. 销毁内存池 ngx_destroy_pool
  3. 重置内存池 ngx_reset_pool
  4. 分配内存 ngx_palloc/ngx_pnalloc/ngx_pcalloc/ngx_pmemalign
  5. 释放内存(仅大块内存) ngx_pfree

内置函数 static