.NETでのメモリ管理問題の調査

C#のアプリケーションでGCによりオブジェクトのメモリが開放されているにもかかわらずプロセスのメモリ使用量が減らない問題を調査していたときに「MSDN Magazine Issues」というページ(英語)で一般的な.NETでのメモリ管理の問題を解説していて非常に参考になりました。
それで無料で使える.NETのプロファイリングツールのCLRProfilerを使って調査したところどうやらこのページの解説にもあるフラグメンテーションの最悪な状況が発生しているであろうことがわかりました。
もしCLRProfilerのようなプロファイラを使って調べていなければアプリケーションのロジックを眺めていても原因がわからないまま無駄に時間を浪費してしまうところでした。
.NET開発でメモリーリークに代表されるメモリ管理の問題の調査にはCLRProfilerが非常に有効だと思いますのでぜひとも活用をお勧めします。
CLRProfilerを使ってどのようなことができるかは「http://www.microsoft.com/japan/msdn/enterprise/pag/scalenethowto13.aspx」のページが参考になります。
なおこのページにあるCLRProfilerのダウンロードのリンクはv1.1です。
CLR Profiler for the .NET Framework 2.0は「http://www.microsoft.com/downloads/details.aspx?FamilyID=a362781c-3870-43be-8926-862b40aa0cd0&DisplayLang=en」このページからダウンロードできます。
CLRProfilerはソースコード付です。
できればこれを改造して独自のツールの開発も考えてみたいと思います。
Javaのプロファイラ(eclipseのTPTP)にも驚いたがつくづく良い時代になったものだと思う。