なぜ、RedisのSDS自分を達成するために

Redisのは、主にC言語で実装された文字の配列を介して、そのようなデータ型の列が存在しない、文字列をC言語の発達を使用したが、文字の配列を使用している以下の欠点を有します。

1.文字列の長さが固定され、傾向ヌルポインタ
アレイは便宜上、時間複雑さを必要とする場合、文字列の長さを得るために2は高い
メモリ後の長さの文字列が変更された3. REALLOCATE
4 \ 0を表しますバイナリを格納する際にエンドは、問題が発生します。


RedisのようにSDSは、上記課題を解決する達成するために、独自に、以下の比較的SDSの利点のいくつかである:
1.特定の規格拡張に対応する長さを有しています。メモリのオーバーフローの問題を解決するように。
2. SDSは、文字列の内部長さを規定する直接使用することができます。アクセスと時間の複雑性の高い長さの問題を解決するように。
3. SDSスペースは、事前に割り当てられ、不活性な空きメモリです。これにより、割り当てられたメモリの数を減らす
終了位置の長さに応じて決定4. SDSを。バイナリ危険なの問題を解決するように。

おすすめ

転載: www.cnblogs.com/excellencesy/p/11684549.html