Redis内存分配简单分析
来源:互联网 发布:淘宝描述不符赔偿 编辑:程序博客网 时间:2024/06/18 06:48
Redis内存管理 1.Redis内存申请内存方式有三种: (1)系统自带的malloc/free方式进行申请/释放。 (2)使用tcmalloc进行内存的申请/释放。 (3)使用jemalloc进行内存申请/释放。 /* Explicitly override malloc/free etc when using tcmalloc. */ #if defined(USE_TCMALLOC) #define malloc(size) tc_malloc(size) #define calloc(count,size) tc_calloc(count,size) #define realloc(ptr,size) tc_realloc(ptr,size) #define free(ptr) tc_free(ptr) #elif defined(USE_JEMALLOC) #define malloc(size) je_malloc(size) #define calloc(count,size) je_calloc(count,size) #define realloc(ptr,size) je_realloc(ptr,size) #define free(ptr) je_free(ptr) #endif2.内存计数器上使用了gcc的一组原子操作,实现的功能就是在used_memory+n的操作//1.先做操作,再返回变化后的值//2.先返回变化前的值,再做操作#if defined(__ATOMIC_RELAXED)#define update_zmalloc_stat_add(__n) __atomic_add_fetch(&used_memory, (__n), __ATOMIC_RELAXED) //used_memory+=n;#define update_zmalloc_stat_sub(__n) __atomic_sub_fetch(&used_memory, (__n), __ATOMIC_RELAXED) //used_memory-=n;#elif defined(HAVE_ATOMIC)#define update_zmalloc_stat_add(__n) __sync_add_and_fetch(&used_memory, (__n)) //used_memory+=n;#define update_zmalloc_stat_sub(__n) __sync_sub_and_fetch(&used_memory, (__n)) //used_memory-=n;#else 3.还有一部函数获取系统的配置信息
0 0
- Redis内存分配简单分析
- Redis源码分析-内存分配
- Redis源码分析-内存分配
- Redis源码分析-内存分配
- 【redis源码分析】内存分配---zmalloc
- Redis内存分配策略
- redis系列-内存分配
- Redis源码分析(二十五)--- zmalloc内存分配实现
- Redis源码分析(二十五)--- zmalloc内存分配实现
- 简单实现内存分配
- 简单的内存分配
- redis内存预分配策略
- redis的内存分配问题
- Redis源码剖析--内存分配
- struct内存分配分析
- UCGUI内存分配分析
- UCGUI内存分配分析
- .net内存分配分析
- perl 操作mysql 数据库
- Seconds_Behind_Master的计算
- MySQL内存分配
- Linux 多线程文件复制
- Linux 多线程的线程栈
- Redis内存分配简单分析
- arsort.php
- android开发中的常见错误
- innodb_flush_logs_at_trx_commit源码行为
- c 实现字符串反转(参考redis源码)
- C实现键值对(Map功能)
- innodb redo buffer的认识
- Android Xutils 框架
- 实现Android通知栏进度条效果