Libevent-2.1.8源码分析——内存管理

1. 概述

默认情况下,libevent使用C库的内存管理函数在堆上分配内存(其实也就是我们在C中经常使用的malloc、realloc和free)。当然如果对于内存的管理有极高的要求,例如在我们的应用程序中可能频繁的申请和释放libevent相关的对象,如果采用默认的内存管理,那么可能就会产生大量的内存碎片造成效率下降,如果对于我们的网络应用程序来说这种效率的下降是不可接受的,那么我们就需要自己提供内存管理函数了 ,比如内存池技术。
在libevent中使用自定义的内存管理函数,就是在使用libevent之前注册对应的分配、释放等接口。

2. libevent的内存管理

libevent的内存管理API定义在头文件mm-internal.h。如同头文件表现的那样,这些API是libevent内部使用,用于管理分配和释放libevent相关对象。
#ifndef EVENT__DISABLE_MM_REPLACEMENT

void *event_mm_malloc_(size_t sz);

void *event_mm_calloc_(size_t count, size_t size);

char *event_mm_strdup_(const char *str);

void *event_mm_realloc_(void *p, size_t sz);
void event_mm_free_(void *p);
#define mm_malloc(sz) event_mm_malloc_(sz)
#define mm_calloc(count, size) event_mm_calloc_((count), (size))
#define mm_strdup(s) event_mm_strdup_(s)
#define mm_realloc(p, sz) event_mm_realloc_((p), (sz))
#define mm_free(p) event_mm_free_(p)
#else
#define mm_malloc(sz) mall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值