javacore、スレッドダンプ、ヒープダンプの正確な違いを教えてもらえますか? これらはそれぞれどのような状況で使用されますか??
5 に答える
スレッド ダンプは、すべてのライブ スレッドのスタックのダンプです。したがって、ある時点でのアプリの状態を分析するのに役立ちます。間隔を置いて実行すると、ある種の「実行」の問題 (スレッドのデッドロックなど) を診断するのに便利です。
ヒープ ダンプは、Java ヒープ メモリの状態のダンプです。したがって、ある時点でアプリがどのようなメモリを使用しているかを分析するのに役立ち、メモリの問題を診断するのに非常に便利です。間隔を置いて実行すると、メモリ リークの診断に便利です。
これは「生の」用語であり、さまざまな方法で提供できます。一般に、JVM およびアプリケーション サーバーからダンプされたファイルを表すために使用されます。この形式では、これらは低レベルのツールです。なんらかの理由で他に何も得られない場合に便利ですが、まともなプロファイリングツールを使用して、同様の情報をより簡単に分析できるようにすることで、生活が楽になります.
WebSphere に関しては、javacore ファイルはスレッド ダンプですが、ロックやロードされたクラス、制限されたメモリ使用量の情報など、他の多くの情報が含まれており、PHD ファイルはヒープ ダンプです。
javacore ファイルを読みたい場合は手動で行うことができますが、より簡単にする IBM ツール (BM Thread and Monitor Dump Analyzer) があります。ヒープ ダンプ ファイルを読みたい場合は、多くの IBM ツールのいずれかが必要です: MDD4J またはヒープ アナライザー。
スレッドダンプは、すべてのスレッドのスタックトレースのダンプです。つまり、各スレッドが突然例外をスローし、printStackTraceがそれを実行したかのようになります。これは、各スレッドが特定の時点で何をしているかを確認できるようにするためであり、たとえば、デッドロックをキャッチするのに非常に適しています。
ヒープダンプは、JVMが使用しているフルメモリの「バイナリダンプ」であり、たとえば、メモリが不足している理由を知る必要がある場合に役立ちます。たとえば、ヒープダンプでは、10億個あることがわかります。ユーザーオブジェクトは、1000しかないはずですが、これはメモリ保持の問題を示しています。
メモリ内に何が保持されているかを確認したいときはいつでもヒープ ダンプメモリ不足エラー ヒープ ダンプ - メモリ内オブジェクトの画像 - メモリ分析に使用 Java コア -スレッド ダンプまたは Java ダンプとも呼ばれ、スレッド アクティビティの表示に使用特定の時間に JVM 内で IBM javacores には、スレッドとスタックだけでなく、多くの追加情報が必要です。これは、ハング、デッドロック、およびパフォーマンス低下の理由を判断するために使用されます。 システム コア
スレッド ダンプは、JVM で実行されているスレッドの javacore 表示スナップショットです。ハングの問題をデバッグするのに役立ちます。Java レベルのデッド ロックに関する情報を提供します。また、javacore の IBm バージョンは、ヒープ使用率、それぞれの CPU 使用率など、より有用な情報を提供します。スレッドと全体的なヒープの使用量、および JVM によってロードされたクラスの数。
Heapdumps は、メモリ リークのデバッグに使用できる、JVM による Java ヒープの使用状況に関する情報を提供します。ヒープダンプは、JVM でメモリ不足エラーが発生した場合に IBM JVM によって生成されます。ヒープダンプは、Java でのヒープ リーク専用です。ネイティブのメモリ不足エラーは、通常、「GPF」一般保護違反を伴うシステム ダンプを引き起こす可能性があります。