美文网首页
nginx学习第四天

nginx学习第四天

作者: ant_1024 | 来源:发表于2018-04-24 23:27 被阅读12次

    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.数组扩容时,旧的内存不会被释放,会造成内存的浪费。避免多次扩容,造成内存浪费

    相关文章

      网友评论

          本文标题:nginx学习第四天

          本文链接:https://www.haomeiwen.com/subject/epgslftx.html