アプリケーションのメモリ使用量のピーク時のメモリ スナップショットが必要です。これを実現する簡単な方法はありますか?
ありがとう
VisualVM/JConsole でアプリケーションを監視します。ピークが表示されたら、ヒープ ダンプを実行します。
もう 1 つの方法は、(監視したくない場合) Xmx を、メモリ不足例外をスローすることが確実にわかっているものに減らすことです。そしてフラグ -XX:+HeapDumpOnOutOfMemoryError を有効にします
え?そのピークがいつ発生するかを定量的に言うことができない場合、これがどのように実装されると予想しますか? すべての時点が保存したい 1 つの状態である可能性があり、事前に知る方法がない場合は、すべての時点の完全なスナップショットを保存する必要があります。それは難しいですね。
JVisualVM に代わる方法は、native_stderr.log を取得して、IBM の Java Garbage 用のパターン モデリングおよび分析ツールで開くことです。アプリケーションがヒープ領域を使用している最高点をすばやく確認できます。