Redis源码解析(25):Zmalloc内存分配实现
发布时间
阅读量:
阅读量
时间流逝得非常快,在过去大约一个月的时间里完成了大量工作量的学习任务。本人已完成对Redis源代码约一半内容的学习,并针对的是Redis工具类相关的代码进行了深入研究。接下来的一段时间内将重点研究这些封装功能在整体系统设计中的作用与影响。例如,在准备分析zmalloc内存管理模块时发现这一问题:即使是在纯C语言环境中也会涉及到内存分配的问题?然而这里我们关注的重点并不是具体的实现细节而是其核心调用功能仍基于经典的 C 语言内存管理函数集合吗?通过进一步查阅相关资料我发现这一模块引入了一些特殊的缓存机制以提高运行效率?具体来说我们需要定义一组新的API来支持这一功能实现:例如用于初始化缓存大小设置超时时间以及配置其他相关参数等等
void *zmalloc(size_t size); /* 调用zmalloc申请size个大小的空间 */
void *zcalloc(size_t size); /* 调用系统函数calloc函数申请空间 */
void *zrealloc(void *ptr, size_t size); /* 原内存重新调整空间为size的大小 */
void zfree(void *ptr); /* 释放空间方法,并更新used_memory的值 */
char *zstrdup(const char
全部评论 (0)
还没有任何评论哟~
