問題タブ [eclipse-mat]

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 投票する
5 に答える
6631 参照

java - Eclipse メモリ アナライザーは、ヒープ ダンプ全体 (8GB) のごく一部 (363,2MB) を確認します。

java.lang.OutOfMemoryError: GC limit exceededTomcatにデプロイされたWebアプリの高負荷時に何が発生するかを調査しようとしていました. ヒープ サイズは 8 GB に設定されました ( -Xms2048m -Xmx8192m)

ある時点で、GC アクティビティのオーバーヘッドが原因で、アプリケーションが応答しなくなります。フル GC が連続して複数回発生していることをログで確認できました。そこで、次のコマンドでヒープダンプを取得しました(jmap -F -dump:format=b,file=/root/dump2.hprof 4963)。ダンプを含むファイルのサイズは 9GB でした。ダンプが取得された後 (アプリは約 45 分間フリーズされました)、OutOfMemoryErrorスローされるまで複数のフル GC が発生しました。

GC アクティビティのログ サンプルを次に示します。

ヒープ ダンプを分析するために、Eclipse メモリ アナライザー (MAT) で開きました。残念ながら、MAT はヒープ サイズが 363.2MB (概要タブまたはヒープ ダンプの詳細タブ) であると表示しますが、GC ログによると、ヒープは 6467961K (6.4G) までいっぱいでした。Unreachable Objects Histogram は合計 75 511 736 (75 MB) を示します。ヒストグラム ビューでも、浅いヒープの合計が 380 837 136 であることが確認されました (363.2MB)

私の質問は、GC がメモリを再利用できない場合、MAT がヒープ ダンプからすべてのオブジェクトを表示しないのはなぜですか?

以下は、MAT にインポートされたヒープ ダンプのスクリーンショットです。

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

java - マットメッセージからの元のメモリリークをマップする

私は MAT を使用でき、浅いヒープと保持されたヒープを持つパッケージ名を示すメッセージを受け取りました。これから、メモリリークの原因となるコード行を特定するにはどうすればよいですか?? どんな体でも、私を助けてください、事前に感謝します。以下は、HPROF ファイルのダンプ メッセージです。 ここに画像の説明を入力

0 投票する
0 に答える
179 参照

android - 作成していない UI 要素のリークを特定する MAT

アプリケーションで MAT を実行して、ユーザーに発生しているメモリ リークと OutOfMemoryException を削減できるかどうかを確認しました。

ツールによって生成されたヒストグラムで、finish を呼び出して循環参照を作成しなかったにもかかわらず、アクティビティの 1 つがメモリから消去されていないことがわかりました。そのため、すべてのソフト/弱い参照を除くすべての着信参照を調べたところ、EditText名前がなく、アクティビティに入れていない があることがわかりました。

添付はレポートのスクリーンショットです。

このリークをプラグインする方法を理解するのを手伝ってください。

マットのスクリーンショット

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

android - Eclipse で MAT を使用してメモリ リークを見つける方法

私はこのトピックの初心者なので、インターネットでMATについて調べましたが、記事はかなり古く、ヒープダンプを作成し、ファイルを手動で他の形式に変換することなどについて何かがありました....しかし、すぐにヒープダンプをクリックすると、これが得られます

ここに画像の説明を入力

だから私はもうそれを変換する必要はないと推測していますか、そうしますか??

私のアプリが約 40 ~ 120 MB の RAM を使用するようにお願いしたいと思います。メモリ リークが原因でサイズが増え続けています。原因となっている変数を特定する方法を教えてください。個別の変数のメモリ割り当てを特定することはできますか

0 投票する
0 に答える
176 参照

java - ヘッドレス (端末のみ) マシンでの Java ヒープ ダンプの対話型クエリ

Java アプリケーションのメモリ リークの可能性を調査する必要があります。

具体的には、マップに含まれるオブジェクト タイプがあります。このデータは時々読み直され、マップは新しいものに置き換えられます。ただし、gc を外部から強制した後でも、一部の古いオブジェクトが常に解放されるとは限らないようです。

事前定義されたレポート (リークの疑いなど) で MAT の使用を開始しましたが、さらに掘り下げる必要があります。

マシンがリモート Linux サーバーであるため、mat の GUI バージョンを使用することは実用的ではありません (X11 で MAT を試しましたが、応答がなく、ダンプが大きすぎてダウンロードできません)。

コマンド ライン ツールを使用してヒープ ダンプをさらに分析する方法を探しています。

SOおよび他のサイトにはいくつかの関連する質問があります-しかし、私が試したオプション以外には何も見つかりませんでした(事前定義されたレポートを使用)

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

java - MAT: "byte[]" の "x インスタンスを診断するにはどうすればよいですか?""占有 y (z%) バイト" メモリの問題?

Android アプリのメモリの問題を診断しようとしています。HPROF ファイルをダンプし、Eclipse MAT ツールにロードしました ( Android Studio を使用してメモリを分析する方法を参照)。リストされた「リーク容疑者」を理解しようとしています

以下が実際の問題を示しているかどうか疑問に思っています。

もしそうなら、どのようにそれを追跡することをお勧めしますか? そうでない場合、このバイトデータが何であるか知っていますか?

0 投票する
2 に答える
1037 参照

java - ヒープ ダンプからスレッド ダンプを抽出する

MAT巨大なヒープ ダンプ (約 12 GB) があり、またはで開くには永遠に時間がかかりますjvisualvm。オブジェクトにインデックスを付けずにスレッド ダンプを取得したいだけです。上記または他のツールで可能ですか?