私はC#アプリケーションに取り組んでいますが、多くのオブジェクトがラージオブジェクトヒープでメモリ割り当てを取得しているため、このアプリケーションはメモリ不足に直面しています。
私のC#アプリケーションは(文字列オブジェクトとして)多くの大きなファイルで動作する必要があるため、この文字列型オブジェクトのメモリは、大きなオブジェクトヒープから何度も割り当てられます(したがって、LOHの断片化につながります)。
文字列は不変オブジェクトであるため、LOHの新しいメモリは常にこのオブジェクトに割り当てられます。私の質問は、大きなオブジェクトヒープにメモリを事前に割り当てて、常に同じメモリを文字列オブジェクトに割り当てる方法はありますか。
詳細は次のとおりです。前述したように、私はこれらの大きなファイルを処理しています。処理を行うには、文字列に変換する必要があります。stringBuilderを使用している場合でも、Stringに変換するとすぐに、このための別のメモリがLOHに割り当てられるため、あまり役に立ちません。
したがって、メモリに100 KBを割り当てることを期待していました。新しいファイルを読み取って文字列に変換するたびに、これらの100KBが割り当てられます。