MVVM Prism を使用して記述された WPF アプリケーションがあります。たくさんのタブがあります。これらのタブは、それぞれ約 2..3 MB のメモリを消費します。クライアントは、数十個のタブを開いたり閉じたりした後、アプリケーションが最初から消費したよりもはるかに多くのメモリを消費すると不満を漏らしています。また、新しいタブを開くにはより多くのメモリが必要になるため、アプリケーションは古いタブを使用せず、代わりに新しいタブを作成します。
したがって、明らかに古いタブはガベージコレクションされません。明らかに、それらを指すリンクがいくつかあるためです。
どうすればそれらをガベージコレクションできますか? IDisposable を実装し、可能な限りすべての参照を削除する必要がありますか? Dispose メソッドもデストラクタで呼び出されるようにしますか? 不要な参照をすべて削除できるかどうかはわかりません。
この問題を解決するのに役立つ、使用できる優れたツールがあるのではないでしょうか?