推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

libevent的内存分配替换event_set_mem_functions的边界.docx

资料介绍

libevent 的内存分配替换:event_set_mem_functions 的边界

替换内存函数的诱惑

在追求性能的场景,很多人想用内存池代替 malloc。libevent 提供了 event_set_mem_functions,允许替换内部的内存分配函数。但替换有边界,理解它才能正确使用。

这篇文章讲 libevent 的内存分配替换,以及它的边界和注意。

替换什么

event_set_mem_functions 允许替换 libevent 内部的内存分配函数。

主要替换三个:malloc、realloc、free。通过传入自定义的实现,让 libevent 的内存分配走自定义路径。

这可以对接内存池、统计内存使用、或对接特定内存管理框架。

替换的时机

替换内存函数,时机很关键。

必须在 libevent 分配任何内存之前调用。也就是说,要在程序初始化阶段、创建任何 event_base、event 之前。

因为一旦 libevent 已经开始用默认的 malloc 分配,之后再替换,会导致"分配用默认、释放用自定义"的混乱。

替换的边界


部分文件列表

文件名 大小
libevent的内存分配替换event_set_mem_functions的边界.docx 37K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载