#ifdef __cplusplusextern "C"{#endif#include "ncx_slab.h"#ifdef __cplusplus}#endifint test_mempoll(int argc, char **argv){char *p;size_t pool_size = 4096000; //4Mncx_slab_stat_t stat;u_char *space;space = (u_char *)malloc(pool_size);ncx_slab_pool_t *sp;sp = (ncx_slab_pool_t*) space;// 指定使用的buffersp->addr = space;// 按2的幂次对齐(2^3 = 8 Byte)sp->min_shift = 3;// 默认写法,连续空间的结尾sp->end = space + pool_size;// 初始化内存池ncx_slab_init(sp);// 测试int i;for (i = 0; i < 1000000; i++){// 申请内存p = ncx_slab_alloc(sp, 128 + i);if (p == NULL){printf("%d\n", i);return -1;}// 释放内存ncx_slab_free(sp, p);}// 打印内存池当前状态ncx_slab_stat(sp, &stat);printf("##########################################################################\n");for (i = 0; i < 2500; i++){p = ncx_slab_alloc(sp, 30 + i);if (p == NULL){printf("%d\n", i);return -1;}if (i % 3 == 0){ncx_slab_free(sp, p);}}ncx_slab_stat(sp, &stat);free(space);return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。