一般的なテキストエディタを実装するとき(一般的な意味では、巨大なファイルを扱う必要がないことを意味します(100-200 MB以上「一般的なケース」の極端な例のように))、挿入/削除を実行するパフォーマンスが低下するため、テキストを連続した1つの長いバッファに格納することは現実的ではありません。テキストエディタ内部テキストストレージ:最適なチャンクサイズ?
それは、あなたがテキストを複数の塊に分割しなければならないという事実の周りを回っているので、私の質問は、今日のコンピュータパワーを考えれば、最適な塊のサイズはどれくらいでしょうか?実際には単純な連続バッファに格納するには大きすぎますか?現代のコンピュータはどれだけ高速にバイトを移動していますか? (間違いを避けるため、ギャップバッファは使用できません。各チャンクは単純な連続配列です)
私が書いたように、これを効率的に扱うことができるデータ構造がたくさんあります。それらのすべて(はい、ロープも)は実装に「チャンクサイズ」を持っています。他の唯一の選択肢は、各ロープセグメントに1つの文字/要素のみを含めることです。その実装が非効率的であるとは想像もできません。もちろん、既存の図書館を利用する場合は、これらの詳細については考えません。しかし、自分の低レベルの実装に最適なチャンクサイズが何であるかを知りたかったのです。 – Cray
ロープに「セットされた」葉のサイズがなく、すべてがダイナミックですが、最終的にはロープのバランスをとる必要があり、メモリの移動や再配置などがあります。コンテキストでは、チャンクサイズも重要です。 – Cray