ANTS メモリ プロファイラを使用して、.NET 2.0 アプリケーションの 1 つで直面しているメモリ リークの増加を診断しています。私は 7.5 時間にわたってプロセスの 7 つのスナップショットを撮りました。取得したデータを表形式で表したものを次に示します。
G1 は第 1 世代のサイズを表し、G2 は第 2 世代のサイズを表します。アンマネージド スペースとプライベート バイトを除いて、他のすべての値は MB 単位です。
私の質問は -
ヒープ サイズが小さい場合でも、未使用の .NET 領域が大量にあるのはなぜですか?
私の大きなオブジェクト ヒープは最大で約 2 MB になり、最後の 3 つのスナップショットでは 96 KB のままです。では、なぜこのように大きなフラグメントが存在するのでしょうか? また、それらが未使用スペースの原因になっているのでしょうか?
管理されていないスペースは絶えず増加します。それは時間の経過とともにプライベート バイトが増加する原因ですか?
私はこの問題を解決するために機知に富んでおり、いくつかの分析を実行しましたが、これに対する適切な解決策を見つけることができません. 必要なその他のデータを提供する準備ができています。