0

VisualVM を使用してソフトウェアのデバッグを開始しました。私はこのソフトウェアに慣れ始めたばかりです。

メモリリークがあります。疑いのある sth を見つけましたが、どうすればよいかわかりません。

次のステップは何ですか?

ここに画像の説明を入力

4

2 に答える 2

1

これは、私が Java visualVM を使用してメモリ リークをすばやく追跡する方法です。

最初にブレークポイントを設定するか、検査したい場所でコードを一時停止します。

プログラムのヒープ ダンプを実行し、「インスタンス ビューで表示」を使用して、リークが疑われるクラスのインスタンスを詳細に表示します (つまり、明らかにメモリ内のインスタンスが多すぎます)。

次に、収集する必要があったそのクラスのインスタンスを 1 つ特定します。「参照」パネルで、クラスを参照するすべてのオブジェクトを確認できます。「これ」を右クリックして「最も近い GC ルート」を選択すると、GC によるクラスの収集を妨げている参照が表示されます。

このようにして、間違った参照がどこにあるかをすばやく特定し、それに応じてプログラムを修正して、リークを回避できます。

頑張ってください。これは実際には非常に興味深い作業です。初心者であれば、JVM の仕組みについて多くのことを学ぶことができます。

于 2013-02-17T18:56:28.453 に答える
0

あなたのアプリケーションについては何も知りませんが、メモリ リークは HashMap にまでさかのぼることができるのではないかと思います。多くの場合、値はマップに蓄積されます (キャッシュのため...)。これらの同様の投稿もご覧ください。

于 2013-02-11T13:00:28.903 に答える