Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
大規模な COM ライブラリ (ArcObjects) に対して作業を行っており、メモリ リークを突き止めようとしています。 アンマネージ コード/オブジェクトによって使用されるメモリの量を決定する最も信頼できる方法は何ですか。 どのようなパフォーマンス カウンターを使用できますか?
UMDHを使用してメモリ ヒープのスナップショットを取得し、それを 2 回実行してから、ツールを使用して 2 つのスナップショット間で発生したすべての割り当てを表示します。これは、漏れている可能性のある領域を追跡するのに役立ちます。
この記事では、簡単に説明します。
CComPtr<> を使用してオブジェクトをラップすることをお勧めします。ただし、生のポインター参照を返す関数に渡す前にオブジェクトを解放する必要があることを忘れないでください (キャスト演算子を使用してポインターを取得し、その後上書きされるため)。
プロセスの「仮想バイト」カウンターは、プロセスが予約したメモリの合計量を表します。メモリリークがある場合、これは上昇傾向にあります。