/*
* NGX_MAX_ALLOC_FROM_POOL should be (ngx_pagesize - 1), i.e. 4095 on x86.
* On Windows NT it decreases a number of locked pages in a kernel.
*/
#define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1)
上面是从nginx中提取的,但是我不明白为什么可以从池中分配的最大内存是getpagesize()-1
?
答案 0 :(得分:0)
在ngx_pool_t中,有两种方法可以分配内存。 1.从内存池中获取未使用的内存(先前分配)。 2.通过调用palloc直接从操作系统获取内存来获取内存。
当所需内存小于pagesize(4k)时,使用内存池,另一方面直接从操作系统获取内存。