Javaプログラムのメモリリークを見つける方法

Plumbrというツールを使うと、Javaプログラムのメモリリークを見つけることができるらしい。「Screencast: how to use Plumbr」にその概要が書かれている。

Plumbrは、実行中にオブジェクトの生成と破棄を解析して、生成されたのに破棄されないオブジェクトを探し出してくれるらしい。
オブジェクトのライフサイクルはアプリケーションによって違うので、それを学習する機能まであるとか。
オーバーヘッドは1〜2%で、非常に小さいとしている。

ずいぶん凝ったものだな、と思っていたら、有料ツールのようだ。

リークしているオブジェクトの種類を調べるのはそんなに難しくないけど、大規模アプリだと手間がかかるだろう。
よくわからない大きいプログラムにメモリリークがあるらしい、とわかった時はこういうツールにすがりたくなるかも知れない。