Cli*_*ote 6 java jvm heap-dump openj9
使用 Oracle 的 Hotspot JVM,它看起来jmap -dump:file=/tmp/dump.txt <pid>
可以用来进行堆转储。
但是,Eclipse OpenJ9 不包含该jmap
工具 - 如果您尝试将常规jmap
与 OpenJ9 的 jvm 一起使用,则会出现异常:
Exception in thread "main" java.lang.ClassCastException: com.ibm.tools.attach.attacher.OpenJ9VirtualMachine incompatible with sun.tools.attach.HotSpotVirtualMachine
at java.lang.ClassCastException.<init>(java.base@10.0.2-adoptopenjdk/ClassCastException.java:71)
at sun.tools.jmap.JMap.executeCommandForPid(jdk.jcmd@10.0.2-adoptopenjdk/JMap.java:128)
at sun.tools.jmap.JMap.dump(jdk.jcmd@10.0.2-adoptopenjdk/JMap.java:192)
at sun.tools.jmap.JMap.main(jdk.jcmd@10.0.2-adoptopenjdk/JMap.java:110)
Run Code Online (Sandbox Code Playgroud)
那么,如何使用 OpenJ9 进行堆转储呢?
-Xdump:heap:events=user
当信号 3 传递到 OpenJ9 JVM 时,您可以使用启用堆转储。因此,使用此选项启动您的应用程序,然后发出kill -3 <pid>
以获取堆转储。
您还可以使用Xdump Option Builder 工具根据您的要求生成-Xdump
选项。
归档时间: |
|
查看次数: |
2717 次 |
最近记录: |