Nginx 源码分析:ngx_hash_t(下)

2015-05-16
阅读 9 分钟
5.7k
上篇回顾了hash表的基础概念,分析了Nginx中hash表的内存模型及逻辑模型,从而引出了其核型数据结构ngx_hash_elt_t和ngx_hash_t,并从设计的角度解释了如何初始化这两个结构体。

Nginx 源码分析:ngx_hash_t(上)

2015-05-15
阅读 4 分钟
7.1k
从查询的角度来看,数组根据索引值的查询速度很快快。 原因在于数组内元素的位置是基于数组起始位置的绝对位置,而且数组的存储空间是连续的,可以根据下标直接操作指针跳转。

Nginx 源码分析:ngx_queue_t

2015-05-14
阅读 3 分钟
4.6k
源文件路径 版本:1.8.0 {代码...} 主要作用分析 ngx_queue_t是Nginx提供的双向链表。 通常意义上的双向链表是长成这个样子的: {代码...} 包含三个要素:节点数据data,指向前一个节点的指针prev及指向后一下节点的指针next。 然后就是老生常谈的对于双向链表的创建、插入、删除等等。我就不详说了,自行google即可。 ...

Nginx 源码分析:ngx_list_t

2015-05-14
阅读 4 分钟
4.1k
在本篇中,我们先来分析Nginx是如何造这个轮子的,然后对比说明,ngx_list_t和list有什么不同,最后再分析Nginx作者Igor Sysoev重复造轮子的原因。

Nginx 源码分析:ngx_array_t

2015-05-13
阅读 4 分钟
4.4k
1)ngx_array_t使用ngx_pool_t内存池来管理内存; 2)ngx_array_t虽然有预设数组大小的概念,但是在数组元素超出预设值大小时,会在ngx_pool_t内存池中发生重分配。

Nginx 源码分析:ngx_pool_t

2015-05-13
阅读 5 分钟
5.4k
源代码路径 版本:1.8.0 {代码...} 主要作用分析 提供了一种机制,帮助进行资源管理(内存、文件)。可以类比C++中的RAII机制。 以内存管理为例,通常是手工进行malloc/free,这种做法的优点是灵活、高效,缺点是容易出错,造成内存泄漏以及各种莫名其妙的BUG。 因此,在C/C++中正确的管理内存一直是最棘手的问题。 C++...