配列のメモリの一部をシステムに返す効果的な方法はありますか? 私は C# を使用して、1 つの大きな文字列配列とハッシュテーブル (>100k 要素) を反復処理しています。個々の要素を使い終わった後、null に設定しています。さまざまなレベルで、ループ全体でガベージ コレクターを呼び出して実験しましたが、システムにメモリを返すものはありません (ガベージ コレクターを完全に呼び出し、保留中のファイナライザーを待機すると、コードが非常に遅くなり、応答しなくなります)。
配列をn個の部分に分割し、各部分が終了した後にgcを呼び出すことを考えましたが、それは面倒です
GC.Collect(1);
GC.Collect(2);
....
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();