用于Java应用程序的锁分析器

时间:2011-03-22 11:16:08

标签: java locking analysis sun

我有两个版本的Java应用程序,它们使用不同的并发逻辑 我想分析和比较他们的表现(获得锁定的时间等),以便我可以使用更好的一个。

我找到了一个IBM Lock Analyzer for Java工具,但它既不是开源的,也不是JDK版本独立的 它需要IBM®提供的Java™SDK或JRE。

IBM的另一个工具是多核软件开发工具包,它有以下问题

  

“MSDK的测试和分析工具   除了锁之外,它在Sun JDK上运行   分析工具。性能工具   需要IBM JDK。“

那么有人可以推荐任何适用于Sun / Oracle Java的锁分析工具吗?

1 个答案:

答案 0 :(得分:2)

这是一个技巧,我已经多次使用命令行在生产环境中找到锁争用:

watch -n1 'jstack [pid] | grep -A 1 BLOCKED | grep -v BLOCKED | grep -v \\-\\-'

它不仅免费,而且几乎没有开销。当然,它不会给你统计数据或一个漂亮的用户界面,但它会以可视方式显示实时锁定问题。基本上这是每秒采样以找到被阻塞的线程。如果有足够的服务器负载,您应该能够进行比较。

YourKit是一个很好的商业选择。