Eedu

快速获取字符串长度

避免缓冲区溢出

降低空间分配次数提升内存使用效率

1.快速获取字符串长度


在看下上面的SDS结构体:


struct sdshdr{

// 记录已使用长度

int len;

// 记录空闲未使用的长度

int free;

// 字符数组

char[] buf;

};

复制代码

由于在SDS里存了已使用字符长度len,所以当想获取字符串长度时直接返回len即可,时间复杂度为O(1)。如果使用C语言的字符串的话它的字符串长度获取函数时间复杂度为O(n),n为字符个数,因为他是从头到尾(到空字符'\0')遍历相加。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、SDS介绍 Redis没有使用C语言传统的字符串表示(以空字符结尾的字符串数组,以下简称C字符串),而是自己构...
    Vic_is_new_Here阅读 8,369评论 0 1
  • 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站...
    Java架构阅读 5,034评论 1 16
  • 转载:可能是目前最详细的Redis内存模型及应用解读 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据...
    jwnba24阅读 3,818评论 0 4
  • 这一章是重新认识幸福,从幸福1.0到2.0,从幸福一元论引发到幸福1.0三元素(积极情绪、投入、意义),再升级到幸...
    友邦保险范丽娟Yvonne阅读 1,571评论 0 1
  • 教育和爱都有两端,自信和自卑。自信……就是要呵护好孩子的缺点,放大孩子的优点,让孩子们感受“家”的爱,让孩子在其中...
    子风夜读阅读 3,878评论 1 1

友情链接更多精彩内容