开发者社区 问答 正文

SDS(simple dynamic string)简单动态字符串的优点是什么?

SDS(simple dynamic string)简单动态字符串的优点是什么?

展开
收起
芯在这 2021-12-14 22:05:33 786 分享 版权
1 条回答
写回答
取消 提交回答
  • 优点

    常数复杂度获取字符串长度bash

    因为 len 属性的存在,咱们获取 SDS 字符串的长度只须要读取 len 属性,时间复杂度为 O(1)。而对于 C 语言,获取字符串的长度一般是通过遍历计数来实现的,时间复杂度为 O(n)。经过 strlen key 命令能够获取 key 的字符串长度。

    杜绝缓冲区溢出数据结构

    在 C 语言中使用 strcat 函数来进行两个字符串的拼接,一旦没有分配足够长度的内存空间,就会形成缓冲区溢出。而对于 SDS 数据类型,在进行字符修改的时候,会首先根据记录的 len 属性检查内存空间是否知足需求,若是不知足,会进行相应的空间扩展,而后在进行修改操做,因此不会出现缓冲区溢出。

    减小修改字符串的内存从新分配次数函数

    二进制安全ui

    兼容部分C字符串函数

    2021-12-14 22:05:56
    赞同 展开评论