フルgcの無限ループに入るプロダクションシステムがあり、メモリドロップはわずか2分で1MBのように8ギグを形成します。
ヒープダンプを取得した後、同じ文字列がヒープの99%を占める数百万のjava.lang.Stringオブジェクトを含むjava.lang.Object([Ljava.lang.Object)の配列があることがわかります。
ただし、コードで修正できるように、どのクラスがこの配列を参照しているかはわかりません。
JDK 6でjmapツールを使用してヒープダンプを取得し、JProfiler、NetBeans、SAP Memory Analyzer、IBM Memory Analyzerを使用しましたが、これらのどれも、この膨大なオブジェクトの配列の原因を教えてくれませんか?...どのクラスがそれを参照しているかまたはそれを含んでいるかのように。
その情報を取得するために、異なる構成で別のダンプを取得する必要がありますか?...またはこれを引き起こしている犯人クラスを見つけるのに役立つ他の何か...それは大いに役立ちます。