理解 Nginx 源碼之四數組結構 ngx

Nginx 數組結構 ngx_array_t


概述

本節源碼來自 src/core/ngx_array.h/.c。Nginx 源碼的數組類似於前面介紹的《STL源碼剖析——序列容器之 vector》,在 Nginx 數組中,內存分配是基於內存池的,並不是固定不變的,也不是需要多少內存就申請多少,若當前內存不足以存儲所需元素時,按照當前數組的兩倍內存大小進行申請,這樣做減少內存分配的次數,提高效率。

數組數據結構

動態數組的數據結構定義如下:

理解 Nginx 源碼之四數組結構 ngx_array_t

理解 Nginx 源碼之四數組結構 ngx_array_t

理解 Nginx 源碼之四數組結構 ngx_array_t

理解 Nginx 源碼之四數組結構 ngx_array_t

理解 Nginx 源碼之四數組結構 ngx_array_t

測試程序

理解 Nginx 源碼之四數組結構 ngx_array_t

理解 Nginx 源碼之四數組結構 ngx_array_t

main函數
理解 Nginx 源碼之四數組結構 ngx_array_t

輸出結果:

理解 Nginx 源碼之四數組結構 ngx_array_t

《深入理解 Nginx》

《Nginx源碼分析—數組結構ngx_array_t》


分享到:


相關文章: