2016-11-23 6 views
0

以下のプロセスを実行しましたが、生成されたダンプを解析できません。Javaプロセスからヒープダンプを取得してメモリリークをデバッグする

  1. は、私が使用してLinuxボックス上で実行中のJavaプロセスからのヒープ・ダンプを取得しようとしました "jmapの-F -dump:フォーマット= B、ファイル=を/ tmp/test.hprof" スパン後
  2. はCtrl + C 60秒
  3. 上記の手順で生成されたヒープダンプは、Eclipse MAT(Memory Analyzer Tool)を使用して起動しますが、次のエラーが表示されます。

"内部でエラーが発生しました: '/users/sobhan/Test.hprof'からヒープダンプを解析しています。 java.lang.NullPointerException

PS:私はVisualVM、IBM Heap Analyzerなどの他のアナライザーツールを試しましたが、結果は同じです。私は、ヒープダンプが破損していると思います(Ctrl + Cの使用はここで間違っていますか?)。その場合は、正しい方法で「jmap」を正常に終了してください。

ありがとうございます。

+0

「Ctrl + Cを60秒間実行した」 - 切り捨てられたヒープダンプを解析できないツール –

+0

一定時間後に正常にjmapを終了する方法を提案できますか@IngoKegel – Sobhan

+0

いいえ、それは規制当局を完了しなければならない –

答えて

0

ヒープダンプが完了するのを待つ必要があります。ヒープのサイズに基づいて、数秒から数分かかることがあります。少なくとも1回、私には20分かかりました(私が正しく覚えていればダンプの大きさは約10Gでした)。あなたは "-dump:live"オプションを試すことができます。これは、ライブオブジェクトだけをダンプし、ゴミをダンプしません。

jmap -F -dump:live,format=b,file=<file_name.hprof> <rdu_process_id> 

ただし、this issueに遭遇している可能性がありますか?

関連する問題