线程转储分析器



你知道一些好的线程转储分析工具吗?完美的是:

  • 自由
  • 可以读取一些线程转储并进行比较
  • 指出哪些线程花费的时间最长,线程被锁定的类是什么等。
  • 显示线程、锁
  • 、死锁和等待获取单个锁的多个线程

编辑:

  • 脱机分析 - 加载具有一个或多个线程转储的文件并对其进行分析。

编辑:我的选择是:武士。它具有我需要的所有功能:加载日志文件,并比较几个线程转储。分析并指出:

  • 等待线程
  • 阻塞的线程
  • 阻塞线程
  • 僵局

我将问题保留为答案,因为TDA是给出的最佳答案。

您可以使用TDA - Thread Dump Analyser,这是Visual VM的插件。

Visual VM也是免费的。我认为这是你最好的选择。

如果你在Linux上,你可以使用kill -3来获取线程转储和 使用线程转储分析器查找死锁。

VisualVM 现在作为 JDK 的一部分提供,可用于监视器内存 用法,线程,还包括一个分析器。

jmap 可用于从 Java 获取堆直方图和堆转储 过程。然后,您可以使用像 Eclipse Memory Analyzer 这样的工具来 调查一下。

正如另一个答案提到的,你可以看看JMX和JConsole。为 我们应用程序中的每个服务都有一个 MBean,因此我们可以查看密钥 诸如队列大小之类的统计信息,以检查是否有任何内容似乎不正常 普通。

来自 ServerFault 上的 Sun JVM 故障排除工具和提示。

如果使用 IBM

JRE,则应使用 IBM Thread and Monitor Dump Analyzer for Java,它提供了您所需要的(离线使用、比较等)。

你可以试试我的转储分析器。我也有同样的需求,并开发了自己的转储分析器。它具有列表的一些功能。

最新更新