日期:2014-05-16 浏览次数:20467 次
Redis现在的版本可以支持使用tcmalloc或者是jemalloc或是apple的malloc,或者是Redis自己的zmalloc。zmalloc对内存的分配管理是线程安全的,而且分配的内存必须要求是以sizeof(long)对其的。
zmalloc.h zmalloc.c
zmalloc除了提供标准的zamlloc,zcalloc,zrealloc,zfree功能之外还提供了dump内存数据到字符串的函数zstrdup,获得已经使用的内存总量的zmalloc_used_memory函数以及设置内存溢出处理函数的zmalloc_set_oom_handler。同时还提供了用于获得系统中的RSS,即程序所占用的实际的物力内存大小 。
具体的实现可以去阅读详细的源代码,在知道了上面的基础之上很容易对源代码进行阅读。