nginx学习第四天

2018-04-24  本文已影响12人  ant_1024

ngx_pool_t

ngx_pool_t是非常重要的而数据结构

1.对内存的管理。总是从一个ngx_pool_t的对象中获取内存,在最终的某个时刻销毁这个ngx_pool_t对象,所有这些内存都被释放了。

2.使用场景。对于ngx处理的每个http request,nginx会生成一个ngx_pool_t对象与这个http request 关联,所有处理过程中需要申请的资源都从这个ngx_pool_t对象中获取,当这个http request处理完成后,所有的处理过程中申请的资源都随着关联的ngx_pool_t对象销毁而释放

ngx_array_t

ngx_array_t是nginx内部使用的数组结构。

1.ngx_array_t相关操作的函数 

    p 数组分配内存使用的内存池;

    n 数组的初始容量大小,既可以在不扩容的情况下最多可以容纳的元素个数

    size 单个元素的大小,单位是字节。

2.如果一个数组对象分配在堆上,那么调用ngx_array_destroy销毁后,如果再次使用,就可以调用此函数。

3.如果一个数组对象分配在栈上,那么就需要调用吃函数之前进行初始化工作后才可以使用

注意:

1.销毁数对象,释放对应的内存池,调用该函数以后数组对象上字段值并没有被清零。所以现在字段有意义,但是这个对象也不应该被使用,除非使用ngx_array_ini函数

2.数组扩容时,旧的内存不会被释放,会造成内存的浪费。避免多次扩容,造成内存浪费

上一篇下一篇

猜你喜欢

热点阅读