問題タブ [hprof]
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.
android - HPROF ビューアーとアナライザーで「重複文字列」を見つけたいのはなぜですか?
Android メモリ モニター、特に「Java ヒープのダンプ」機能を使用して、現在、アプリのメモリ リークを探しています。Android Studio のダンプ/HPROF ビューの左側には、「アナライザー タスク」を開くオプションがあり、マシンに「リークされたアクティビティを検出する」および「重複する文字列を検索する」ように指示できます。私は後者の選択肢に困惑しています。それは何をし、どのように役立ちますか?同じ文字列をリソース フォルダーに 2 回入力する不器用な開発者を助けるだけではなく、より洗練されたものでなければなりません。ドキュメントは、「ターゲットプログラムに値を繰り返す文字列がある」場合にのみ役立つと述べているため、ここではあまり役に立ちません(私の検索が十分に徹底されている場合)。これはいつですか?
android - Android Studio の HPROF Viewer のアイコンの意味
ときどき、Android Studio の Memory Monitor と HPROF Viewer を使用して、メモリ リークや一般的なメモリ使用量をチェックしています。
ビューアで使用されているほとんどの記号と色の意味を知っていると思いますが、それらを自分で理解しているだけでなく、確認したいと思います。ウェブ上で説明を見つけられませんでしたが、私の質問に対する答えはかなり単純明快であると確信しています。
参照 3 つの次の記号は何を意味しますか?
インスタンスのフォントの色が青、赤、太字、または斜体の場合は、どのような意味ですか?
シンボル 1、2、および 3 を同じインスタンスで組み合わせることができる場合があります。それは何か特別な意味がありますか?
HPROF Viewer に対する私の機能要求は、さまざまなアイコンにカーソルを合わせたときのツールチップです..
java - Android Studio のヒープ ダンプ (.hprof) ビューアに間違ったカウントが表示されますか?
この実験のために、まったく新しいサンプル プロジェクトを開始しました。アプリには 1 つのアクティビティがあります。
この時点で、アプリケーションを実行して Java ヒープをダンプします。結果を以下に示します。
すごい!すべてが正しく見えます。「Total Count」と「Heap Count」は 1 です。まさに期待どおりです。
デバイスを 3 回回転させてみましょう。この時点ではまだ MainActivity が 1 つしか表示されないことを期待していますが、4 つが作成されていることは理解しています。見てみましょう。
うーん...それは奇妙です。それは 4 を示しています。活動はまだ続いているのかもしれません。参照されていません...しかし、まだGCされていません。GC を強制して、別のヒープ ダンプを実行しましょう。
変。まだ 4 です。ここで迷っています。Total Count または Heap Count のいずれかが 1 であるように聞こえます。MainActivity のすべての参照を保持しているだけですか? それは漏れですか?視聴者が間違っているだけですか?
合計数 (ドキュメントによると) は「未処理のインスタンスの合計数」です。
多分ヒープカウント?「選択したヒープ内のインスタンス数」それは私が望むものの多くのように聞こえます。gc ルートを持つインスタンス (実インスタンス) の数が必要です。
なぜこれが起こっているのか誰にも分かりますか?
java - 履歴 .hprof ファイルの変更時刻が変更された理由
.hprof
タイトルで述べたように、履歴ファイルの変更時刻が変更されたという変更理由について疑問に思っています。
私の問題のシナリオは次のとおりです。
.hprof
メモリリークが発生したため、数か月前にファイルを生成したため、問題を修正して関連する Java プロセスを再起動しました。その後、このダンプされたファイルは生成された場所に破棄されます。
一方、変更時刻が更新されるとトリガーされる実行中のモニターがあります(を使用find -cmin
)。
その結果、アーカイブ.hprof
ファイルの変更時刻が更新されたというアラートを受け取りました。
ファイルのパーミッションを手動で変更した人は誰もいなかったので、Java が単独でそれを行う状況があると思いましたか?
この問題について何か教えてください。どうもありがとう。
android - Android Studio でメモリ割り当てが多いヒープ ダンプが終了しない
アクティビティ間を移動しているときに、メモリ割り当てが 30 MB から 500 MB を超えるアプリがあります。それが発生している間に割り当てを追跡し、何がメモリに保持されているかを確認できますが、ヒープの HPROF ファイルを作成したいので、それを MAT にロードして、何がそのメモリを使用しているかをよりよく把握できます。
ただし、ダンプを作成しようとすると、メモリ グラフに点線とスピナーが表示されるだけで、(一見) 際限なく続きます。より低い割り当てで問題なくダンプを作成できますが、500 MB 以上が割り当てられているため、作成できないようです。
そのシナリオに関する既知の問題を探しましたが、見つかりません。問題を解決するために変更できる設定、または問題を解決するためにできることはありますか? ヒープを適切に分析しないと、メモリで何が起こっているのかわかりません。
注: 私はメモリの問題自体、ATM について助けを求めているわけではありません。主に、ヒープ ダンプを機能させる方法に関心があります。