1.标准strcat 会有溢出风险,sdscat无溢出风险

2.空间预分配,惰性空间释放

空间预分配:sds分配空间时,如果原来是5,free是0, sdscat追加一个10长度的,此时字符串加长到15,free也同时分配15,总长为15 + 15free + 1(/0) 为31字节; 若大于1M后则以1M为单位追加。

这么做的原因是,内存分配是比较耗时的操作【https://baike.baidu.com/item/realloc/659993?fr=aladdin】,在原地址空间后面若无足够的可用空间,还需要内存拷贝。这样预分配free空间以减少后续的内存分配操作。

惰性过期:free后不会释放空间,会把减少的字符长度追加到free上。

3.二进制安全

最新文章

  1. 从DataGridView导出Excel
  2. POJ 3181 Dollar Dayz DP
  3. 【nginx】负载均衡和proxy的配置
  4. jenkins+jmeter+ant搭建接口测试平台
  5. How to install more voices to Windows Speech?
  6. IIS 发布网站到外网
  7. data structure online video
  8. Monitor and diagnose performance in Java SE 6--转载
  9. hdu 2074 堆放篮 好开心图纸标题
  10. ios开发屏幕问题
  11. 将百度的ECharts整合到阿里的Weex中。
  12. [Python Study Notes]字符串操作
  13. 让UltraEdit成为java编译器
  14. How hacker do IT: Tricks Tools and Techniques (翻译)
  15. 在WINDOWS中安装使用SIGPACK(MinGW64+Sublime Text3 &Visual Studio)
  16. msmq访问格式
  17. js回调函数以及同步与异步
  18. 20145203盖泽双《网络对抗技术》实践五:MSF基础应用
  19. 存储json数据的编码问题
  20. UWP Button添加圆角阴影(一)

热门文章

  1. webapi 之 post参数传递
  2. docker images 导入和导出
  3. Djang简介
  4. vue项目环境的搭建
  5. 用jquery实现Ping测试网络连接性
  6. spark_rdd 一波怼完面试官系列
  7. springboot 详解RestControllerAdvice(ControllerAdvice)(转)
  8. sql server 遍历表成一棵树结构
  9. Go学习笔记(六) | 使用swaggo自动生成Restful API文档(转)
  10. [Javascript] How to deal with floating number