我正在尝试减少应用程序中特定代码路径上的锁争用。为了识别具有高锁争用的代码,我将 YourKit 连接到我的应用程序并使用“监视器”选项卡并查看获取哪些锁导致我关心的线程阻塞。我的最终目标是在 YK GUI 的“线程”选项卡中没有这个线程的红点。
通常争用是由使用内部锁的读/读锁定引起的,因此可以通过使用 aReentrantLock
而不是内部锁来改进这些。事实上,当我尝试这样做时,YourKit 报告的争用较低。这些信息可靠吗?YourKit 是否正确报告了 ReentrantLock 的使用情况?
我在带有 Sun 1.6u18 32 位 JVM 的 Solaris 10 上使用 YourKit 8.0.24。