标签:
前面两篇博文,细致地介绍了zmalloc.c文件的各个函数,不过大家要想深入学习Redis,还需要自己去看源码才是,我梳理了一下zmalloc.c文件的结构,为大家阅读源码提供便利。
名称 | 类型 | 说明 |
---|---|---|
used_memory | static size_t | Redis已用内存空间的大小 |
zmalloc_thread_safe | static int | 标识是否线程安全 |
used_memory_mutex | pthread_mutex_t | 修改变量used_memory时的互斥锁 |
zmalloc_oom_handler | static void (*)(size_t) | 函数指针指向内存不足时调用的函数 |
名称 | 说明 |
---|---|
zmalloc | 分配内存空间 |
zfree | 释放zmalloc分配的空间 |
zcalloc | 分配内存空间并初始化为0 |
zrealloc | 重新分配空间的大小 |
zstrdup | 字符串复制 |
zlibc_free | 同free() |
名称 | 说明 |
---|---|
zmalloc_enable_thread_safeness | 设置线程安全标识(zmalloc_thread_safe置1) |
zmalloc_get_fragmentation_ratio | 内存使用率:RSS/used_memory |
zmalloc_get_memory_size |
返回系统物理内存的大小(单位:字节) |
zmalloc_get_private_dirty | 查询/proc/self/smaps 中"Private Dirty"的大小 |
zmalloc_get_rss | 通过查询/proc/<pid>/stat 文件获得RSS的值 |
zmalloc_get_smap_bytes_by_field | 查询/proc/self/smaps 的指定字段的大小 |
zmalloc_set_oom_handler | 设置oom(内存不足)函数指针的值 |
zmalloc_size | 查询系统实际分配的内存空间的大小 |
zmalloc_used_memory | 查询已用空间(used_memory)的大小 |
zmalloc_get_memory_size()
该函数在最新的Redis发布版中还未被包含。仅在目前(2015/04)的github开发版中。
名称 | 说明 |
---|---|
update_zamlloc_stat_alloc | 分配内存空间后更新used_memory的值 |
update_zamlloc_stat_free | 释放内存空间后更新used_memory的值 |
update_zamlloc_stat_add | 线程安全地used_memory增加操作 |
update_zamlloc_stat_sub | 线程安全地used_memory减少操作 |
名称 | 说明 |
---|---|
PREFIX_SIZE | 内存分配时比需求多分配的空间大小 |
HAVE_MALLOC_SIZE | 若使用tcmalloc、jemalloc或Mac系统则定义此宏 |
Redis内存管理的基石zmallc.c源码解读(附录):源码结构表
标签:
原文地址:http://blog.csdn.net/guodongxiaren/article/details/44810325