我有一个 Java 应用程序有一半时间挂起,另一半时间 JVM 崩溃。有没有一种工具可以用来查看导致它挂起和/或崩溃的原因? 我使用的是 CentOS 5.6
最佳答案
对于初学者,我建议 JVisualVM .它与 JDK 一起提供,因此您只需在命令行中键入 jvisualvm
即可启动它。
一旦启动,您就可以连接到正在运行的 JVM,因此您应该能够连接到挂起的 Java 进程并检查堆栈转储中所有正在运行的线程以及堆的内容。
其他有用的内置工具包括:
jps
列出正在运行的java进程的进程id
jstack
为指定 JVM 进程中的每个线程打印堆栈转储
jmap
为指定的JVM进程生成heap dump(jvisualvm也可以生成heap dump)
jhat
分析使用 jmap 或 jvisualvm 生成的堆转储
当然,还有更复杂的分析器可用。 JProfiler受到高度重视。
关于java - 调试工具在 Java 应用程序中挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9833497/