线程转储分析器

时间:2012-11-14 08:15:04

标签: java multithreading analyzer thread-dump

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

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

编辑:

  • 离线分析 - 使用一个或多个线程转储加载文件并进行分析。

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

  • 等待线程
  • 阻止线程
  • 阻止线程
  • 死锁

我会回答问题,因为TDA是最好的答案。

3 个答案:

答案 0 :(得分:6)

您可以使用TDA - Thread Dump Analyzer,一个Visual VM插件。

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

  

如果您使用的是Linux,则可以使用kill -3来获取线程转储   使用Thread Dump Analyzer查找死锁。

     

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

     

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

     

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

来自ServerFault上的Tools and tips for Sun JVM troubleshooting

答案 1 :(得分:3)

如果您使用IBM JRE,则应使用 IBM Thread and Monitor Dump Analyzer for Java ,它可以提供您所需要的功能(离线使用,比较等)。

答案 2 :(得分:0)

您可以尝试我的Dump Analyzer。我有同样的需求并开发了我自己的转储分析仪。它具有您列表的一些功能。