私は C# 4.0 マネージ コード アプリケーションに取り組んでいます。CLS に準拠していない外部 DLL を使用しています。
DLL のメモリ リークをチェックするには、メモリ リーク検出ツールが必要ですか? はいの場合、最高のツールは何ですか?
私は C# 4.0 マネージ コード アプリケーションに取り組んでいます。CLS に準拠していない外部 DLL を使用しています。
DLL のメモリ リークをチェックするには、メモリ リーク検出ツールが必要ですか? はいの場合、最高のツールは何ですか?
マネージ コードでも、メモリ リークが発生する可能性があります。ただし、実際にメモリリークが見つからない限り、メモリリークについては掘り下げません。
リークを調査する必要がある場合は、ANTS Profilerをお勧めしますが、これには限界があるため、ケースバイケースで使用する必要があります。
はい、.NETでメモリリークが発生する可能性があります。これらのクラスの多くはアンマネージコードを呼び出すため、基本クラスライブラリのみを使用している場合でもそれらを使用することができます。
System.DirectoryServices.SearchResultCollectionを列挙した後に破棄しなかったため、メモリリークが発生したことがあります。
ただし、どのリーク検出ツールが利用できるかわかりません。
無料のWinDbg、SOS、GCRootを使用して、メモリリークを診断できます。David Ansonが、このブログ投稿でその方法を紹介しています。Rico Marianiには、WinDbgとSOSの使用に関する優れたブログ投稿もあります。
JustTrace、dotTrace、ANTS Profilerなどの他の製品は、この種の問題の診断に役立ちます。
CLR プロファイラー、VSTS プロファイラー、.NET メモリ プロファイラー、CLR プロファイラーなどのツールを使用して、オブジェクトのサイズなどを確認できます。.NET プログラムでメモリ リークを見つけてメモリ使用量を最適化できると言われています。