【问题标题】:Why is (getpagesize() - 1) special?为什么 (getpagesize() - 1) 很特别?
【发布时间】:2011-06-07 08:25:28
【问题描述】:
/*
 * 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

【问题讨论】:

    标签: c memory-management


    【解决方案1】:

    在 ngx_pool_t 中,有两种分配内存的方法。 1. 从内存池中获取未使用的内存(之前分配的)。 2.通过调用palloc直接从操作系统获取内存来获取内存。

    当需要的内存小于pagesize(4k)时,使用内存池,另一方面直接从操作系统获取内存。

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 2013-05-11
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      相关资源
      最近更新 更多