データベース (nvarchar) から大きな Unicode テキスト文字列 (200Mb など) を取得し、処理のためにメモリに格納する必要があります。つまり、文字列のすべての部分へのランダム アクセスが必要です。
これを厳密にメモリ中心の観点から見ると、メモリ内表現として System.IO.MemoryStream と System.String を使用することの長所と短所は何ですか。
私が研究しようとしているいくつかの要因は次のとおりです。
- これらのオブジェクトが[仮想の]高度に断片化された低メモリ環境でどのように機能するか
- 不変性
- メモリ内の実際のサイズ (ストリームが UTF8 の場合、サイズはほぼ半分になります)
- 私が考えたことのない別のオブジェクトはありますか?
これらの点に関する明確さとアドバイス、および私が考えていなかったその他のメモリに関する考慮事項を探していますか?
注: これらの文字列を処理するより良い方法があるかもしれませんが、現時点では、そのようなオブジェクトを格納する際のメモリの考慮事項について質問しているだけです。