問題タブ [jhat]

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 に答える
4898 参照

java - jhat 認識されないマジック ナンバーを投げる

メモリの問題が発生した Java プロセスから取得したヒープ ダンプを分析しようとしています。ダンプは jmap を使用して取得されました。ダンプファイルで jhat を使用しています-取得しています

java.io.IOException: Unrecognized magic number: 169897589 at com.sun.tools.hat.internal.parser.Reader.readFile(Reader.java:94) at com.sun.tools.hat.Main.main(Main.java:159)

jdk 1.6 と 1.7 の両方で同じエラーが発生します。Windows マシンで jhat をローカルで実行しており (ダンプ ファイルを にコピーした後)、ダンプ ファイルは Linux サーバーで取得されました。

私が間違っていることは何ですか?

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

java - PermGen OutOfMemory エラーの原因となっているコード内の行まで jmap/jhat の出力を追跡するにはどうすればよいですか?

JBoss 7.1.3、JDK 1.6、および Mac 10.9.1 を使用しています。Maven Jboss AS プラグインを使用して WAR ファイルを何度もデプロイ/アンデプロイした後、サーバーが以下のエラーで停止します…

しかし、結果のページhttp://locohost.mymachine.com:7000/にアクセスすると (「locohost.mymachine.com」ではなく「localhost」と表示されていることを除いて)、出力はまったく判読できません。私たちが書いたクラスへの参照を含む行がたくさんあります。たとえば

しかし、これらの PermGen エラーの原因となっているコードの部分を追跡するにはどうすればよいでしょうか?

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

java - 切り捨てられた Java ヒープ ダンプ (hprof ファイル) を分析する方法はありますか?

私の仕事では、再現が難しい OOM の問題が発生しています。または、より正確には、あるシステムで再現するのは非常に簡単で、そのシステムは使用できなくなりますが、同じ入力が与えられた場合、他の場所で再現するのは困難です。

アプリケーションは、サービス ラッパーを使用してサービスとして実行されています。OOM でヒープ ダンプ ファイルを出力するオプションを使用して起動するように構成を変更することができましたが、残念ながら、ファイルを書き込んだときにサービス ラッパーがタイムアウトし、プロセスが強制終了されたため、ファイルが切り捨てられました。これは、最大メモリが 1GB に設定されており、hprof ファイルが 700MB と小さいため、OOM のヒープ全体には小さすぎるため、すぐにわかります。

Java プロセスがヒープを書き出すためにより長い時間を与えるようにラッパーを追加で構成するには、多くの手間がかかりますが、次の 2 つのオプションを使用してこれを追求しています。

問題は、私が持っている切り捨てられた hprof ファイルでできることは何かありますか? Eclipse MAT がそれらを窒息させます。Jhat はそれらをロードしているように見えますが、サイズ 0 の Java.Object の 3 つのインスタンスしか表示されず、他には何も表示されません。YourKit を試してみましたが、oids ファイルを書き込めませんでした。

これらのファイルには、有用でアクセス可能な情報が含まれている必要があるように思えます。そこにあるものを読み取ることができるツールはありますか?

お時間をいただきありがとうございます!