如何通过Java中的"同步"代码知道花费多少时间?

Fre*_*ind 5 java monitor synchronized

我有一个Java应用程序,它不像我预期的那么快.我已经做了很多关于如何改进的搜索,但并不幸运.

现在我正在检查代码,发现代码中有很多synchronized关键字.我在想他们是否花了太多时间等待锁.

有没有工具来检查它们花费多少时间?因此,如果他们花费太多时间,我可以找到更好的解决方案.

Bar*_*end 6

我本来打算建议jvisualvm的线程监视器功能,在寻找屏幕截图时,遇到了这篇博文:检测线程争用。这比仅仅截图要好得多:)。

但无论如何,这就是: jvisualvm 中的线程争用 (图片来源:上述博客文章)