問題タブ [java-memory-leaks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
634 参照

android - LeakCanary がリークを特定するのに十分な情報を提供していない

LeakCanary を使用していますが、ヒープ分析の結果では、リークを検出するのに十分な情報が得られません。アクティビティがリークしていることだけが言及されています。

この痕跡からわかるのSelectActivityは、漏れていることだけです。しかし、私は理由を理解できませんか?アクティビティ自体は 1000 行以上あり、すべての行を調べてリークの可能性のある候補をチェックする以外にショートカットがあるかどうかを期待していました。

0 投票する
1 に答える
174 参照

java - Java メモリの問題: Java.lang.ref.finalizer オブジェクト

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

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

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

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

ここに画像の説明を入力

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

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

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力