在java中查找同步争用证据的位置?

Ser*_*ipc 3 java performance multithreading synchronization contention

我们的Tomcat Web应用程序在被几百个用户使用时感觉很慢.服务器在托管公司,他们的报告没有显示带宽或CPU工作负载的任何问题,所以我怀疑减速的原因可能是因为我们封装在同步调用下的一些遗留代码的争用,因为它是更容易的路径

我在开发环境中做了一些人工测试,用ThreadLocal解决方案改变了同步调用,它变得更快,但我知道我的老板会要求我一些证据表明它的生产速度也会更快.

我怎么能确定我的应用程序中的线程争用是否存在问题?

Mic*_*rdt 7

我认为最近的Java 6 JDK附带的visualVM工具的线程详细信息视图将能够为您的理论提供(或反对)理论的可靠证据.它显示每个线程的饼图,显示它在显示器上运行,休眠,等待和等待的时间.最后一个(以红色显示)是您感兴趣的内容:

替代文字