2011-07-27 26 views
1

ヒープスペース用にOutOfMemoryErrorを取得しているJavaアプリケーションがあります。私は-XX:HeapDumpOnOutOfMemoryErrorを有効にし、結果のhprofファイルを持っています。OOMを引き起こすスレッドのスタックトレース

しかし、ダンプは、ヒープ、permgenなどに十分なスペースが残っていることを示しています。これは、大量のメモリ(たとえば、1 GBの配列)に対する単一要求の原因である可能性があります。したがってダンプには現れません。

基本的には、OOMがスローされた時点でOOMを引き起こしたスレッドのスタックを見たいと思います。

これはhprofダンプから可能ですか?

答えて

2

OutOfMemoryErrorにあるため、ダンプにありません。そのエラーのスタックトレースを捕捉して印刷すると、どこで発生したのかがわかります。

+0

私はそれだと思います!これが一番重要な情報であり、利用可能なメモリをはるかに超えるバグによる大規模な配列リクエストなど、多くの場合、それはあなたが気にしている唯一のものだから、ちょっと残念です。あなたがそれを記録するように設定されていないか、ログが取得できない場合、あなたはSOLです。 – BeeOnRope

+0

私は特に、あなたがXXを使うときは同意します:HeapDumpOnOutOfMemoryErrorそれは簡単にトレースを含めることができます! –

関連する問題