システムの開発時、メモリリークが疑われる場合最初にタスクマネージャでexeが使用しているメモリの量を確認する事が多いかと思います。
この際、Windows7のタスクマネージャでだと、メモリの使用量として「ワーキングセット(メモリ)」と、「メモリ(プライベートワーキングセット)」の2つが有りますが、ワーキングセットを見てメモリリークの判断を行ってはいけません。
(補足:XPだと、プライベートワーキングセットは、仮想メモリサイズと表記されます)
なぜかというと、ワーキングセットの値は、以下の特性があり該当のexeが”今使用している”メモリ量をあらわしているわけでは無いからです。
1.ワーキングセットの値は,他のプロセスと共有しているメモリ領域のサイズが含まれている (コード領域のメモリや、共有DLLのエリアのサイズが含まれる) 2.ワーキングセットの値は,使用してないけど開放されてないメモリも含まれているから (OSは、アロケートしたメモリが不要になったからといっても、すぐにそのメモリを開放するわけではない) |
一方で、プライベートワーキングセットは、該当のプロセスが、文字通り独占的(=プライベートに)消費しているメモリ量なので、通常はこの値をウォッチするとメモリリークを判断可能です。
プライベートワーキングセットのサイズが、プロセスが使用している総メモリ量というわけでは有りませんが、プログラムでメモリの開放し忘れがあった場合は、大抵プライベートワーキングセットの領域が増加し続けていくので、通常はこの値をチェックすればOKです。
前述したように、プライベートワーキングセットの現在値は、Windows7ではタスクマネージャから確認できますが、過去の履歴の推移を見たい場合は、パフォーマンスモニタからチェックする事も可能です。
手順としては、perfmon.exeを起動し、カウンターの追加よりprocessオブジェクトの中にある、Private Bytesを指定します。

ガベージコレクション 自動的メモリ管理を構成する理論と実装
.NET&Windowsプログラマのためのデバッグテクニック徹底解説
関連記事
パフォーマンスタブに出るメモリ使用量はどちらの合計ですか?