問題タブ [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.

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

java - hprof ファイル形式

.hprof (バイナリ ヒープ ダンプ) ファイル形式のリファレンスを知っている人はいますか?

.hprof ファイルを処理するライブラリを知っている人はいますか? Hatがそれを行い、NetBeans プラグインを介してVisualVMも行うことを私は知っています。しかし、他にもありますか?

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

java - -XX:+HeapDumpOnOutOfMemoryError が OOM で hprof ファイルを作成していません

Java コード (Vista では 1.6.0_16) を次のパラメーター (とりわけ) で開始します-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs。コードを実行すると、ログに 2 つの OOM があることがわかります。

hprofファイルが作成されていることをstdoutで確認できる最初の原因は次のとおりです。

そして、コードの終わりに向かって別の OOM を取得し、これをキャプチャしますが、2 番目の hprof ファイルが作成されません。それはなぜかわかる人いますか??OOM 例外をキャプチャしたためですか?

0 投票する
4 に答える
34951 参照

java - HPROF ファイルを自由に生成できますか?

疑わしい動作をしている Java プロセスがあります。いろいろなHPROF解析ツールを使ってどうなっているのか見てみたいです。

その場で生成するにはどうすればよいですか?

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

java - 使用可能なメモリよりもはるかに小さいメモリ ダンプ

OOM でメモリ ダンプを作成するように構成された Tomcat アプリケーション サーバーがあり、-Xmx1024M で開始されるため、ギガバイトが利用可能であるはずです。

今、そのようなダンプを 1 つ見つけましたが、保持されていないメモリは 260MB しかありません。ダンプが、彼が利用できるはずのサイズよりもはるかに小さい可能性があるのはどうしてですか?

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

java - アプリケーション コードから他のプロセスの Hprof ダンプを取得する

私のアプリケーションでは、hprof ダンプをキャプチャするオプションがあります。使った

android.os.Debug.dumpHprofData (文字列ファイル名)

最初は、上記の方法で生成された hprof データはデバイス全体のものですが、そうではありません。生成された hprof データは、私のプロセス専用です。

現在、他のプロセスの hprof データも生成しようとしています。アプリケーション コードから実行中のすべてのプロセスの Hprof ダンプを取得する必要があります。

adbシェルから「kill -10」を試しました。このコマンドは、data/miscフォルダー内の対応するプロセスのhprofファイルを生成します。

問題は、このコマンドが adb shell prompt から完全に機能していることですが、コマンドを mycode に埋め込むことができません。

私のコードは

Runtime.getRuntime().exec("chmod 777 /data/misc") Runtime.getRunTime().exec("kill -10")

例外はスローされませんが、どういうわけか機能していません。上記の同じコードは、プロセス ID を指定すると、プロセスの Hprof ダンプをキャプチャしています。

「android.os.Process.sendSignal (int pid, android.os.Process.SIGNAL_USR1) ;」で試してみました また、同じ問題が発生しています。プロセスのHprofダンプをキャプチャしています。他のプロセスでは機能していません。

プロセスから他のプロセスを強制終了するには、特別な許可が必要ですか? それとも構築済みの問題ですか?アプリケーション コードから他のプロセスの Hprof ダンプを取得する方法を教えてください。

ありがとう

0 投票する
3 に答える
1173 参照

java - Java プロファイリング: java.lang.Object.hashCode は CPU 時間の半分を使用しますが、明示的に呼び出されることはありません

を使用してマルチスレッド プログラムのベンチマークを行っ-agentlib:hprof=cpu=samples たところ、結果に次の行が含まれていることに驚きました。

プログラムで hashCode() を明示的に呼び出すことはありません。この理由は何ですか?今回の「無駄」の出所と、それが正常か異常かはどうすれば分かるのでしょうか?

ありがとう、デビッド

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

scala - sbt から hprof を実行する

からどのように実行hprofsbtますか?

CPU とヒープをプロファイリングするためのさまざまなオプションはありますか?

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

android - 特定のデバイスから HPROF ダンプを取得できないのはなぜですか?

多くの役立つサイトで詳しく説明されているように、Android アプリのメモリ使用量を分析する 1 つの方法は、「kill -10 [PID]」を実行して HPROF ダンプをトリガーすることです。これは一部のデバイスで機能するようで、logcat には通常次のようなものが含まれています。

ただし、他のデバイスでは、「kill -10」を実行すると次のようになります。

これを試しているすべてのデバイスはルート化されており、/data/misc を 777 に chmod したことを確認しました。「kill -10」を実行した後、エラー メッセージは表示されません。

参考までに、HPROF ダンプを取得するデバイスは次のとおりです: HTC ACE (Desire HD)、HTC G1、HTC Nexus One (T-Mobile)

そして、HPROF ダンプを取得しないデバイスは次のとおりです: Nexus S、Droid、Droid X、Nexus One (AT&T)

特定のデバイスから HPROF ダンプを取得できないのはなぜですか? ダンプを取得できるようにするためにできることはありますか?

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

java - hprof ファイルのサイズが、jvm に与えられたメモリの量よりもはるかに小さいのはなぜですか?

コードは -XX:+HeapDumpOnOutOfMemoryError フラグで実行されるため、OOM で hprof ファイルを取得します。最近、インストールからそのようなファイルを取得し、Eclipse メモリ アナライザー (MAT) で開いたところ、合計サイズが 46MB であることがわかりました。

サイズは最大割り当てサイズにはるかに近いべきではありませんか??

これはjdk1.6です。

編集: OK、同様の質問を見つけました。実際、プロセスが 23 日間稼働しているため、PermGen スペースの問題が原因である可能性があります。私は新しいスレッド (私が知る限り、適切に終了する) を非常に頻繁に、おそらく 1 秒に 1 回作成します。どういうわけかこれを確認できるかどうか知っている人はいますか?

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

java - 基準に一致するオブジェクトをカウントするための OQL 構文

OQL構文を使用してEclipse MATでオブジェクトをカウントするにはどうすればよいですか? これは機能しません:

(メモリにロードされた休止状態の pojo の数をカウントしたい)

そうするための非常に簡単な方法があるに違いありません...私を助けてくれてありがとう!