ITKeyword,专注技术干货聚合推荐

注册 | 登录

redis内存预分配策略

beijing20120926 2013-11-15

相关推荐:利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配

TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上

sds.c/sdsMakeRoomFor 函数描述了 sdshdr 的这种内存预分配优化策略,

相关推荐:(2)垃圾收集器与内存分配策略

  当要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。   在上一节谈

以下是这个函数的伪代码版本:

def sdsMakeRoomFor(sdshdr, required_len):

    # 预分配空间足够,无须再进行空间分配
    if (sdshdr.free >= required_len):
        return sdshdr

    # 计算新字符串的总长度
    newlen = sdshdr.len + required_len

    # 如果新字符串的总长度小于 SDS_MAX_PREALLOC
    # 那么为字符串分配 2 倍于所需长度的空间
    # 否则就分配所需长度加上 SDS_MAX_PREALLOC 数量的空间
    if newlen < SDS_MAX_PREALLOC:
        newlen *= 2
    else:
        newlen += SDS_MAX_PREALLOC

    # 分配内存
    newsh = zrelloc(sdshdr, sizeof(struct sdshdr)+newlen+1)

    # 更新 free 属性
    newsh.free = newlen - sdshdr.len

    # 返回
    return newsh

相关推荐:Instagram的Redis实践(内存占用优化)

转自:http://blog.nosqlfan.com/html/3379.html   Instagram 可以说是网拍App的始祖级应用,也是当前最火热的拍照App之一,Instagram的照片数量已经达到3亿,而

sds.c/sdsMakeRoomFor 函数描述了sdshdr 的这种内存预分配优化策略,以下是这个函数的伪代码版本:def sdsMakeRoomFor(sdshdr, required_len): # 预分配空间足够,无须再进行空间

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。