ngxinx

Nginx — 内存池

狂风中的少年 提交于 2020-04-25 15:19:51
2013年10月20日 Nginx 之 内存池 1、基本结构 先来学习一下nginx内存池的几个主要数据结构:[见:./src/core/ngx_palloc.h/.c] ngx_pool_data_t(内存池数据块结构) 1: typedef struct { 2: u_char *last; 3: u_char *end; 4: ngx_pool_t *next; 5: ngx_uint_t failed; 6: } ngx_pool_data_t; ngx_pool_s(内存池头部结构) 1: struct ngx_pool_s { 2: ngx_pool_data_t d; 3: size_t max; 4: ngx_pool_t *current; 5: ngx_chain_t *chain; 6: ngx_pool_large_t *large; 7: ngx_pool_cleanup_t *cleanup; 8: ngx_log_t *log; 9: }; 可以说, ngx_pool_data_t 和 ngx_pool_s 基本构成了nginx内存池的主体结构,下面详细介绍一下nginx内存池的主体结构: 如上图,nginx的内存池实际是一个由 ngx_pool_data_t 和 ngx_pool_s 构成的链表,其中: ngx_pool_data_t 中: last