ここで、私たちの Web アプリで厄介な問題が発生します。(Asp.net 2.0 Win サーバー 2008)
ウェブサイトのメモリ使用量は、かなり静的なレベルにとどまると予想されますが、どんどん増えていきます。(状態に保存される少量のデータがあります)。
問題が何であるかを知りたくて、私は System.GC.Collect(); を実行しました。数回、メモリ ダンプを取得し、このメモリ ダンプを WinDbg にロードしました。
DumpHeap -Stat を実行すると、メモリ内にぶら下がっている特定のタイプの数値が異常に大きくなります。
0000064280580b40 713471 79908752 支払いオプション
したがって、この型に対して DumpHeap -MT を実行すると、オブジェクト参照のスタックが得られます。これらのランダムな数を選択して !gcroot を実行すると、コマンドが戻ってきて、参照が保持されていないことが報告されます。
私には、GC がこれらのアイテムを収集するのはまさにこのときですが、何らかの理由で未処理のままになっています。
何が起こっているのか説明できる人はいますか?