随心而动,随意而行.

没有理想的人和行尸走肉又有什么区别呢.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

转自:http://blog.csdn.net/livelylittlefish/article/details/6586946

 

2.1 创建内存池

创建内存池有ngx_create_pool()函数完成

 

2.2 销毁内存池

销毁内存池由如下函数完成。

void ngx_destroy_pool(ngx_pool_t *pool)

该函数将遍历内存池链表,所有释放内存,如果注册了clenup(也是一个链表结构)亦将遍历该cleanup链表结构依次调用clenuphandler清理。同时,还将遍历large链表,释放大块内存。

 

2.3 重置内存池

重置内存池由下面的函数完成。

void ngx_reset_pool(ngx_pool_t *pool);

该函数将释放所有large内存,并且将d->last指针重新指向ngx_pool_t结构之后数据区的开始位置,同刚创建后的位置相同。

 

2.4 分配内存

内存分配的函数如下。

void *ngx_palloc(ngx_pool_t *pool, size_t size);

void *ngx_pnalloc(ngx_pool_t *pool, size_t size);

void *ngx_pcalloc(ngx_pool_t *pool, size_t size);

void *ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment);

 

返回值为分配的内存起始地址。选择其中的两个函数进行分析,其他的也很好理解,省略。

posted on 2014-05-09 10:55  随心而动,随意而行  阅读(253)  评论(0编辑  收藏  举报