jmap
のヘルプメッセージのスニペット:
λ > jmap
Usage:
jmap [option]
(to connect to running process)
jmap [option]
(to connect to a core file)
jmap [option] [[email protected]]
(to connect to remote debug server)
where
つまり、 -J
フラグが引数をJVMに直接渡すことがわかります。
jvm
ヘルプメッセージを見てください:
λ > java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available (implies -server, only for x86_64)
したがって、 jmap -J-d64
は、32ビットの代わりに64ビットモデルを使用して java -d64
を開始するように jmap
jmap
を実行しているプロセスが64ビットJVMでない場合は、 -J-d64
引数を渡さないでください。
トラブルシューティングのために jmap
/ jhat
あなたが壊れていると言うと、実際に jhat
が壊れたヒープダンプを報告しているということですか?それとも、ヒープダンプが大きすぎて読み込めるからですか? jhat
は、ダンプ全体をメモリにロードしようとします。そのため、ダンプのサイズ以上の空きメモリが必要です。ヒープ領域を増やすには、 -Xmx
を jhat
、 J-d64
に指定する必要があります。
私が使用するはるかに優れた代替手段は、 Eclipse Memory Analyzer Tool です。これは、ヒープ・ダンプを選択的にロードしますすべてをプリロードするよりも。 jhat
よりも6 + GBのヒープダンプではるかに優れていました。