ドキュメントの表現をメモリに保持する必要があり、これを行う最も効率的な方法を探しています。
仮定
- ドキュメントは非常に大きく、最大 100MB になる場合があります。
- 多くの場合、ドキュメントは変更されません (つまり、不必要な前処理をしたくありません)。
- 通常、変更はドキュメント内で (つまり、ユーザーが入力するにつれて) 互いに非常に近くなります。
- 変更をすばやく適用できる必要があります (ドキュメント全体をコピーする必要はありません)。
- 変更は、オフセットと新規/削除されたテキスト (行/列ではなく) に関して適用されます。
- C# で作業するには
現在の考慮事項
- データを文字列として格納します。コーディングが簡単で、設定が速く、更新が非常に遅い。
- 行の配列、適度にコーディングが簡単で、設定が遅く (文字列を行に解析する必要があるため)、更新が高速です (行を挿入して削除するのは簡単ですが、オフセットを見つけるには行の長さを合計する必要があります)。
この種のものには標準アルゴリズムがたくさんあるに違いありません (何百万マイルものディスクの割り当てと断片化ではありません)。
ご意見ありがとうございます。