私のアプリケーションは、使用すると思われるよりも多くのメモリを使用しています。どのクラスが大量のメモリを使用しているかを理解しようとしており、メモリを解放していない可能性があります。
私は VisualVM を使用しており、メモリ サンプラーでは、ほとんどのメモリが Char、String、および Byte に費やされていることがわかります。私のクラスはすべて String を使用していますが、ご存知のように、VisualVM はシステム内のすべての Char と String を示しています (すべてのこれらの文字列を保持する他のクラスのサイズは文字列なしで計算されることを理解しているため、文字は文字列と同じであるため、誰がそれらを保持しているかを理解するのが難しくなります)。
このツールで、「実際の」最大のクラス (これらすべての文字列を保持するクラス) を確認するにはどうすればよいですか? (できれば、これらのクラスから文字列に到達でき、その逆ではない場合)heapDumpで「最も近いGCへのルート」を使用しようとしましたが、約4,000,000の文字列があるため、「問題のある」を見つける可能性がありますものはとても小さいです...
ありがとう!!!