<commit_before>// annotated by chrono since 2016
//
// * ngx_create_pool
// * ngx_palloc_small
// * ngx_palloc_large

/*
 * Copyright (C) <NAME>
 * Copyright (C) Nginx, Inc.
 */


#include <ngx_config.h>
#include <ngx_core.h>

// 如果编译时指定宏NGX_DEBUG_PALLOC
// 则不会启用内存池机制，都使用malloc分配内存
// 方便使用valgrind等来检测内存问题

// 在本内存池内分配小块内存
// 不超过NGX_MAX_ALLOC_FROM_POOL,即4k-1
static ngx_inline void *ngx_palloc_small(ngx_pool_t *pool, size_t size,
    ngx_uint_t align);

// 所有内存池节点都空间不足
// 创建一个新的节点，即内存块
// 跳过内存池描述信息的长度
// 后面的max,current等没有意义，所以可以被利用
static void *ngx_palloc_block(ngx_pool_t *pool, size_t size);

// 分配大块内存(>4k),直接调用malloc<commit_msg>ngx_palloc.c<commit_after>// annotated by chrono since 2016
//
// * ngx_create_pool
// * ngx_palloc_small
// * ngx_palloc_large

/*
 * Copyright (C) <NAME>
 * Copyright (C) Nginx, Inc.
 */


#include <ngx_config.h>
#include <ngx_core.h>

// 如果编译时指定宏NGX_DEBUG_PALLOC
// 则不会启用内存池机制，都使用malloc分配内存
// 方便使用valgrind等来检测内存问题
// 此宏自1.9.x开始出现

// 在本内存池内分配小块内存
// 不超过NGX_MAX_ALLOC_FROM_POOL,即4k-1
static ngx_inline void *ngx_palloc_small(ngx_pool_t *pool, size_t size,
    ngx_uint_t align);

// 所有内存池节点都空间不足
// 创建一个新的节点，即内存块
// 跳过内存池描述信息的长度
// 后面的max,current等没有意义，所以可以被利用
static void *ngx_palloc_block(ngx_pool_t *pool, size_t size);

// 分配大块内存(>4k),直接调用malloc
{'fraction_non_alphanumeric': 0.12975912975912976, 'fraction_numerical': 0.012432012432012432, 'mean_word_length': 4.411764705882353, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3683193', 'n_tokens_mistral': 730, 'n_tokens_neox': 766, 'n_words': 90}