実行中のプロセスでjmap -histo
コマンドを使用すると、30分ごとに明らかに(デスクトップアプリケーションの)メモリリークであるオブジェクトが見つかりました。リーク(すなわちその数のインスタンスの時間をかけて成長し、膨大な量だけオブジェクトの種類のみ)の責任どのような種類のオブジェクトがメモリリークを引き起こしているのか、今は何ですか?
目的は、INT []あります。
BufferedImage
が犯人であると思われますが、私はそれについてはわかりません(私はフラッシング/ヌル化に大変注意を払っていますが、まだ漏れがあると思います)。
しかし私はまた、プログラムの別の部分でint []を使用しています、そして、私は単に漏れがどこから来ているかについて確信していません。 jmap -histo
の出力は、あまりにも私の好みに「薄い」ものです。
int[]
のリークがどこで発生しているのかをどのように特定することができますか。
単純にjmap -histo
がどれほどシンプルであるかを指摘したいと思います。多くのオブジェクトでは、インスタンス数と使用メモリ数を見るだけで、リークを検出するのに十分ですさらなる分析。
私の場合、私は別のものが必要です。
私の質問は、どのような種類のツールでも漏れを見つけられるとは限りません。私の質問は:私のアプリ(または私のアプリが使用しているAPI)がのint []をリークしていることを知っ
、うまくいけば、見つけるために、どのような手順Iは、(例えば、お気に入りのプロファイラを使用して)取ることができますリーク?
このツールは、Java 1.5 OS X 10.4 Apple JVMで動作する必要があります。
ツールは*保持されたヒープ*でソートできますか? – NoozNooz42
あなたはそれのためにeclipse MATを使うことができます:) –