非常に奇妙な問題を示すアプリケーションを実行しています。約 2.5 時間は正常に動作しますが、突然、管理されていないメモリが増加し始め、急速に増加します。さらに約 30 分以内に、アプリがクラッシュします。
アプリケーションはアンマネージ DLL を使用していません。外部アプリケーションと通信しています。ソケット (ストリーム経由で使用) を使用して書き込み、WCF ストリームを介して読み取ります。
ANTSでプロファイリングしました。アンマネージ メモリ使用率の突然の変化は非常に印象的です。永久に完全にフラットなままで、その後突然増加し始め、アプリケーションが失敗するまで一定の速度で増加し続けます。マネージ メモリ内には、場違いに見えるものはありません。
アンマネージ コードを意図的に使用しているわけではないので、リークの原因を特定するのは困難です。ANTSは役に立ちません。最初から着実に増加していない場合、コードをスクラブして問題を解決するのは困難です (アプリは常にアイドル状態のままですが、非常に小さなデータでソケットを介して毎秒 1 回サーバーに ping を実行します)。
繰り返しになりますが、この間、アプリケーションとサーバーは両方ともアイドル状態です。これは、分離されたテスト システム (サーバーとクライアントの両方) で実行されています。漏れているのはクライアントです。