当Linux Core转储本身被禁用时,是否有可能获得Java堆转储?
由于 丹努什
答案 0 :(得分:4)
是。 Java堆转储和Linux核心转储由完全不同的机制生成。
答案 1 :(得分:1)
Java堆转储独立于Linux核心转储。
要获得堆转储,您可以使用:
-XX:+HeapDumpOnOutOfMemory
获得转储后,您可以使用Eclipse MAT等工具对其进行分析。
答案 2 :(得分:1)
有很棒的工具,例如Eclipse MAT和Heap Hero分析堆转储。但是,您需要为这些工具提供以正确的格式和正确的时间点捕获的堆转储。
本文为您提供了捕获堆转储的多个选项。但是,我认为前三个是有效的选择,而其他三个则是个不错的选择。
1。 jmap
这是调用jmap的方法:
jmap -dump:format=b,file=<file-path> <pid>
where
pid: is the Java Process Id, whose heap dump should be captured
file-path: is the file path where heap dump will be written in to.
2。 HeapDumpOnOutOfMemoryError
示例用法:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tmp/heapdump.bin
答案 3 :(得分:0)
OS核心转储与Java堆转储无关。操作系统转储控制着操作系统,Java堆转储控制着JRE