参考になりそうな本でも構いません
My.Application.Info.WorkingSetとdebug.writelineをいたるところに配置することで、大体の発生箇所についてめどが立ったこともないのですが、そこから先の原因箇所へ絞り込むことができません
とりあえずdisposeが使えるものはできるだけusingで括ってみたり、画像とかファイルアクセスのところは気をつけたりしているつもりなんですが、一向にメモリ消費ペースが変わらず、さじを投げています
よろしくお願いします
メモリリークの原因調査のアプローチをいくつか書きます。
1.再現性を確認する。
特定の手順、特定の操作で再現するのであれば、
ある程度、原因個所が絞り込めていることになります。
次その部分を切り出した小さいプログラムを作って、
再現性があるか確認します。
これを繰り返すと、原因個所が狭めることが出来きます。
面倒であれば、プログラムをばっさり消してみて、
再現するか確認するもの手です。
また、プログラムを半分に分けて、
どっちで再現するかを繰り返すのも有効と思います。
2.画像やファイルのデータを静的変数に保持していないかを確認する。
クラス変数であっても、そのクラスのインスタンス自体を、
静的変数に保持していないかを確認する。
通常の変数はどこからも利用されなくなると、ガベージコレクション(GC)の
回収対象になって、そのうちGCが破棄してくれますが、静的変数は、
大量データを格納しない等、メモリ管理に気をつける必要があります。
3.ループ処理の中で、ListにデータをAddしている箇所を確認する。
Listが静的変数だったりすると、Deleteしない限りは増え続けます。
4.各種のプロファイラを使ってみる。
http://d.hatena.ne.jp/Wacky/20080823/1219500273