Javaプログラムのメモリ使用量を分析する方法があるのか不思議です。私のコードはOutOfMemoryErrorでクラッシュしています。そのため、すべてを使っているものを見てみたいと思っています。それが役に立ちましたら、Intellij IDEAを使用していますが、使用しているテストケースがtxtファイルになっているので、実際にデバッグすることはできません。IDEAには標準入力を再ルーティングする方法がないと思いますその中でプログラムを実行しています。Javaの死後メモリ解析
答えて
いくつかの方法があります。
Heapdump(メモリ):
jmap -dump:format=b,file=<heap_dump_filename> <pid>
スレッドダンプ:
kill -3
者が手動で呼び出されることを意図していて、オンデマンドでファイルを生成することができます。時間の経過とともにアプリがどのように動作するかを見たいときに便利です。
あなたはOOOのエラーを検出すると、自動的にそれを作るために、これらの変数を設定することができ、あなたのJavaプロセスで:この上
+HeapDumpOnOutOfMemoryError
さらに詳しい情報:今すぐhttps://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/clopts.html
を、すべてのこれらのファイルが何かで読み取ることができますMATのように: https://www.eclipse.org/mat/
また、スレッドがSDKに付属するJava VisualVMのでダンプ読むことができる:https://docs.oracle.com/javase/7/docs/technotes/guides/visualvm/index.html
ヒープダンプは、メモリリーク、ヒープ問題、およびガベージコレクタの問題を分析するのに役立ちます。スレッドダンプを使用すると、スレッドをブロックしたか、サーバーを停止させるIO操作が多いかどうかを確認できます。 (通常、多くのログが呼び出されます)。
最後に、MATは4 GB以上の大きなヒープを読み取る際にいくつかの問題を抱えている可能性があります。私は時々IBMヒープ・アナライザーも使用します:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091
私は通常、これらのタイプの問題を分析するのが楽しいです。 幸運を祈る!
- 1. 共有システムライブラリの正確なデバッグシンボルを持たないリモート死後のコアダンプ解析
- 2. 解析のJava
- 3. Android用メモリ/パフォーマンス解析ツール
- 4. Resharper 6オンライン解析メモリ
- 5. JSON解析 - メモリ依存?
- 6. 読み取り後の依存関係LLVMメモリ依存解析
- 7. 解析日 - Java
- 8. JAVA、XML解析
- 9. java xpath解析
- 10. 解析JSONのJava
- 11. Java JSONの解析
- 12. Android用の「ライブ」メモリ解析ツール
- 13. Ruby CSVの解析メモリ割り当て
- 14. Roslynメモリ内コードの静的コード解析
- 15. javaプログラムの実行後にメモリを解放する方法
- 16. Javaクラスロードビジュアリゼーション/解析ツール
- 17. Javaでのテキストファイルの解析
- 18. XMLでのJavaの解析
- 19. Javaでのログファイルの解析
- 20. JavaのSimpleDateFormatの解析ミリフォーマットエラー
- 21. 意味解析後のクラスタリング
- 22. 解析後の雑草
- 23. Java日付の解析
- 24. Javaコールグラフの静的解析
- 25. Javaでの構文解析
- 26. 解析は、スカラ座/ Javaの
- 27. Javaでのバイトコード解析
- 28. Capricious JsonのJava解析エラー
- 29. Java解析のADIFファイル
- 30. XML構文解析 - Javaの
なぜ標準入力をリルートする必要がありますか? –
VisualVMプロファイラを使用してください。これはJDKに付属しています。 – Carcigenicate
ヒープダンプを強制し、https://www.eclipse.org/mat/にアクセスし、ダンプファイルをロードします。 – OldProgrammer