2

ファイナライザー オブジェクトによって引き起こされるメモリ リークに関するほとんどの調査では、コードまたは依存ライブラリのいずれかで、ファイナライズ メソッドをオーバーライドする必要があります。しかし、私のプロジェクト全体では、どこにも使用されていません。(私はJava8を使用しています)

メモリの問題に直面しています。私のサービスでは、サービスを再起動するとすぐに使用可能なメモリが減少し始め、7 日以内に 95% 減少し、後で頻繁に警告が表示されます。

ここに画像の説明を入力 上のグラフは、Y 軸で使用可能なメモリを示しています。上のグラフのすべてのピークは、サービスの再開のためのものです。

Eclipse Mat でヒープ ダンプを調べたところ、次のように表示されました。

ここに画像の説明を入力

ご覧のとおり、ほとんどすべてのスペースが 1 つのオブジェクトだけで占められています。つまりjava.lang.ref.Finalizer、プロジェクトでフィールド Java 検索を行ったときに、finalize() メソッドを使用するコードが表示されません。

そして、メモリリークを見つけようとして行き詰まりました。問題を引き起こしている可能性のある他の理由はありますか。

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1