問題タブ [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 投票する
1 に答える
2430 参照

java - OutOfMemoryError - hprof の作成後に JVM を強制終了する方法

をキャッチするときにJavaを終了させたいのですがOutOfMemoryError、を使用してファイル-XX:+HeapDumpOnOutOfMemoryErrorをダンプしていhprofます。ファイルのダンプ中に JVM を起動する必要があるため
使用できません。ファイルの作成 後に JVM を停止する方法はありますか? 明確にするために、私は Sun の JVM バージョン 6 を使用しています。kill -9 <pid>hprofhprof

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

java - heapdump サイズと hprof サイズ

最近、jboss サーバーが xms 4096m、xmx 4096m、permsize 512m で実行されていたときに、hprof 形式でヒープダンプを作成しました。

生成された hprof ファイルは 5 GB を超えています。visualvm、mat アナライザー、または yourkit でヒープダンプをロードすると、合計バイト数が約 1 GB しか表示されません。キットの到達可能範囲を変更しようとしましたが、1 GB を超えて表示されません。

ファイルサイズと表示されたヒープダンプサイズのこの大きな違いが何を引き起こす可能性があるか考えていますか?

ps: jdk1.6.0_23 を使用しています

残念ながら、ここでスクリーンショットを送信することは許可されていません。

ファイルシステムでは、hprof のサイズは 5.227.659 kb であり、キットには次のように記載されています。

オブジェクト: 9.738.282 / 浅いサイズ 740 mb / 保持サイズ: 740 mb それらの間で到達可能な文字列: 6.652.515 (68%) / 浅いサイズ: 381 mb (51%) / 保持サイズ: 381 MB (51%)

保持される最大サイズは、206.810.176 の byte[] です。

0 投票する
7 に答える
11612 参照

java - hprofダンプからのスレッド/ヒープダンプ内のスレッドを表示することは可能ですか?

発生時にアプリケーションによって作成された大きな(5GB)hprofダンプがありOutOfMemoryErrorます。( XXの使用:HeapDumpOnOutOfMemoryError)。

残念ながら、このエラーが発生したときに収集されたログはありません。これを再作成するには数時間かかります。いくつかのツールがhprofからの例外スタックトレースまたはすべてのスレッドスタックなどを表示できるかどうかを期待していました。

現在MATを使用していますが、スレッド情報を取得する方法がわかりませんでした。どのツールを使用できますか?

(OOMが発生したときのhprofファイルにスレッド/呼び出しの場所に関する情報があるかどうかはわかりません)。

(通常の場合にスレッドダンプを取得する方法を知っています。ここでの問題は、すでに発生したイベントです。私が持っているのはhprofダンプだけです。)

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

android - MAT (Eclipse メモリ アナライザー) - メモリ ダンプからビットマップを表示する方法

Eclipse Memory Analyzer (MAT とも呼ばれます)を使用して、Android アプリのメモリ使用量を分析しています。android.graphics.Bitmapヒープの大部分を使用して、クラスの奇妙なインスタンスを見つけることがあります。問題は、このビットマップのソースが見つからないことです。 filenameresourceIDも何もありません。ビットマップについて見つけることができるすべての情報は次のとおりです。 bitmap_info

画像ピクセルの配列を持つフィールドがあるmBufferと思います。しかし、それは PNG ではなく、内部の Android 形式です。

質問: このビットマップで表されるイメージをメモリ ダンプから表示するにはどうすればよいですか?

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

java - jar 内のクラスをプロファイリングする方法は?

mvn assembly:assemblyプロファイリングしようとしている(でコンパイルされた) JAR 内にクラスがある場合、jhat または Eclipse メモリ アナライザーで使用できる有効なコア ダンプを取得するコマンドは何ですか?

これを実行してみました:

java -agentlib:hprof=heap=sites,cpu=samples,file=profile.hprof,format=b -jar the-jar.jar

プロセスを停止すると、コア ダンプが作成されます。

しかし、jhat も Eclipse メモリ アナライザーも、これを有効なダンプとして認識しません。

jhatは私にこの警告を与えます:

また、hprof のドキュメントを読むと、クラス名を渡す必要があることがわかります。JAR内にある場合、どうすればよいですか?

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

java - コアダンプを hprof に変換できません

hprof に変換したい core.31690 ファイルがあります。私は試しました:jmap -dump:format=b,file=mydump.hprof /usr/bin/java core.31690しかし、私は以下を得ました:

オンラインで探してみましたが、何も見つかりませんでした。ポインタはありますか?

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

java - YourKit で Hadoop HPROF .profile ファイルを開く

YourKit はバイナリ HPROF ダンプを開くことができると主張していますが、Hadoop ジョブから作成されたバイナリ ダンプは有効なスナップショットではないと主張しています。

ダンプは、 (Hadoop: The Definitive Guide で指定されているように)mapred.task.profile.paramsの値でオプションを指定することによって作成されます。-agentlib:hprof=cpu=samples,heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s,format=b

このファイルを YourKit で開く方法はありますか? 作成されたファイルを開くグラフィカルなプロファイリング ツールは他にありますか?

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

java - JVMTIを使用してCPU使用率を計算するには

JavaアプリケーションのCPU使用率を探しています。CPU使用率を取得する最良の方法は、(process_time / elapsed_time)*100.0です。Javaアプリケーションの場合、process_timeはcom.sun.management.OperatingSystemMXBeanによって取得されます。JVMTIを使用してCPU使用率を計算する方法はありますか?

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

java - Mavenビルドのメモリリークを見つけようとするとHPROFが文句を言う

私は、Java プロセスが PermGen メモリ (EDIT) を使い果たすことがあるリークがあるように見える Maven ビルドを持っています。VisualVM から、新しいビルドが行われるたびにヒープと PermGen が著しく増加することを学びました。ここで、リークがどこにあるかを調べたいと思います(編集:時折の例外を取り除くだけではありません)。

これに対する標準的なアプローチは、HPROF に事後分析用のデータを収集させることです。ただし、これは失敗し、生成された java.hprof ファイルはツールで正しく解析できません。

私の「mvn.bat」ファイルは次のようになります (Windows 7 の 64 ビット JVM):

私の MAVEN_OPTS は次のようになります

これは「mvn clean」の結果です。


(そして何度も)。私はhprofに慣れていません。

ここから先に進む最善の方法は何ですか?

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

android - ListActivityのパフォーマンスの問題

に深刻な問題がありますListActivity。アプリを開いてスクロールを開始すると、アプリが数秒間フリーズし、その後スムーズにスクロールできます。「アプリケーションが応答していません」というエラーは表示されません。ヒープダンプを作成*.hprofしてMATに入れました。ここで私のリークを見ることができます:

MATによるメモリ分析

メモリリークの疑い

何かが怪しいようです。たぶん私はカーソルを正しい方法で使用していません。ここで私のコードを見ることができます:

編集1:
次のコードで同じリークがあるため、この問題はデータベースから発生していません。

誰かがメモリリークを見つけることができれば素晴らしいでしょう。
マイクさん、こんにちは!