次の方法で共有


メモリリーク検出ツールについて

質問

2015年7月6日月曜日 7:50

現在、VisualStudio2013のC#でWPFアプリケーションの開発を行っております。

コーディングする際に気をつけるのは当然ですが、やはりメモリリークが発生してしまう可能性はあると思います。

そこで皆様に質問なのですが、メモリリークを検出するツールなどは存在するのでしょうか?

有償・無償問いませんので、何かいいツールがあればご教示いただけないでしょうか。

宜しくお願いします。

すべての返信 (2)

2015年7月6日月曜日 9:27 ✅回答済み | 1 票

FYI

Application Verifier
https://msdn.microsoft.com/ja-jp/library/dd371695(v=vs.85).aspx

- リークによる停止の詳細: アンロードされる時点まで解放されない dll によって作成されるリソースを追跡して、リークを検出します

Windows アプリケーションにおけるメモリ リークの防止
https://msdn.microsoft.com/ja-jp/library/dd744766(v=vs.85).aspx

- パフォーマンス モニターとリソース モニターは、Windows 7 に付属し、長時間にわたってリソースの使用量を監視してグラフに表示できます。

  • 最新バージョンの Application Verifier は、Windows 7 のヒープ メモリのリークを診断できます。
  • Windows 用デバッグ ツールに付属する UMDH は、指定したプロセスのヒープ メモリ割り当てを分析し、リークやその他の異常な使用パターンを検出するのに役立ちます。
  • Xperf は、ヒープ割り当てのトレースをサポートする高度なパフォーマンス分析ツールです。
  • CRT デバッグ ヒープは、ヒープ割り当てを追跡し、ヒープをデバッグする独自の機能の構築に役立ちます。

2015年7月6日月曜日 14:42 ✅回答済み | 2 票

WPFアプリケーションは.NET Framework上で動作しています。そして.NET Frameworkでは全てのオブジェクトがGC; ガーベージコレクタによって管理されています。ですので、ガーベージコレクタを確認すればリソースリークしているかを判断できます。Visual Studioに付属しているプロファイラーもしくはCLRプロファイラーで状況を把握することができます。

と言いつつ、GCで管理できないネイティブリソースもありますので、そちらに関してはお馬鹿さんが挙げられているような方法を用います。