一、设计原则 (1)降低内存碎片 (2)降低向操作系统申请内存的次数 (3)减少各个模块的开发效率 二、源代码结构 struct ngx_pool_s { ngx_pool_data_t d; size_t max; ngx_pool_t *current; ngx_chain_t *chain; ...
分类:
其他好文 时间:
2017-05-22 15:04:41
阅读次数:
184
nginx——内存池篇 一、内存池概述 内存池是在真正使用内存之前,预先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。 内存池的好处有减少向系统申请和释放内存的时间开销,解决内存频繁分配产生的碎片,提示程 ...
分类:
其他好文 时间:
2016-11-08 01:14:22
阅读次数:
380
一、内存池概述 内存池是在真正使用内存之前,预先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。 内存池的好处有减少向系统申请和释放内存的时间开销,解决内存频繁分配产生的碎片,提示程序性能,减少程序员在编写... ...
分类:
其他好文 时间:
2016-11-07 19:48:09
阅读次数:
220
一、nginx内存池的使用
nginx对内存采用内存池对内存进行管理。即先开辟一个内存池空间,之后就从内存池中获取空间了,避免频繁的调用malloc/free操作。如何内存池空间不够,才会调用mall...
分类:
其他好文 时间:
2016-11-01 16:52:20
阅读次数:
291
在上一篇分析nginx内存池的基础上,回过头来看看nginx中一些常见的数据结构,如字符串、数组、队列、链表、hash表等。...
分类:
其他好文 时间:
2015-05-21 12:43:40
阅读次数:
149
main -> ngx_save_argv创造一个包含argc个地址空间的数组ngx_argv,然后为ngx_argv每个地址空间分配argv[i]大小的空间,并将argv[i]拷贝入ngx_argv[i]指向的地址空间main -> ngx_process_options调用ngx_pnalloc...
分类:
其他好文 时间:
2015-04-09 15:27:04
阅读次数:
160
本文简单介绍了Nginx 内存池的管理机制。 Nginx 使用内存池对内存进行管理,把内存分配归结为 大内存分配 和 小内存分配。若申请的内存大小比同页的内存池最大值 max 还大,则是大内存分配,否则为小内存分配。...
分类:
其他好文 时间:
2015-01-03 22:28:59
阅读次数:
325
今天是一年一度的光棍节,还没有女朋友的程序猿童鞋不妨new一个出来,内存管理一直是C/C++中最棘手的部分,远不止new/delete、malloc/free这么简单。随着代码量的递增,程序结构复杂度的提高。今天我们就一起研究一下以精巧著称的nginx的内存池。...
分类:
其他好文 时间:
2014-11-11 21:13:42
阅读次数:
278
这几天在看nginx,发现凡是有内存申请的地方都有pool这个东东出现,仔细看看,原来pool的类型是ngx_pool_t,是nginx用来做内存管理的,于是就决定看看他的实现。
1 nginx内存池相关的结构体
ngx_pool_t定义在core/ngx_palloc.h ngx_palloc.c中,下面是几个主要的结构体
ngx_pool_data_t
typede...
分类:
其他好文 时间:
2014-09-24 21:07:58
阅读次数:
332
一、设计原则
(1)减少内存碎片
(2)减少向操作系统申请内存的次数
(3)降低各个模块的开发效率
二、源码结构
struct ngx_pool_s {
ngx_pool_data_t d;
size_t max;
ngx_pool_t *current;
ngx_chain_t ...
分类:
其他好文 时间:
2014-07-19 23:16:14
阅读次数:
258