JFR线程争用

时间:2018-11-22 03:07:33

标签: java jfr

我有一个运行1m9的多线程应用程序(具有56个并发线程)。争用的JFR屏幕截图如下所示。我不清楚的是:

  1. “计数”字段表示什么?获取锁的次数?
  2. 平均值表示什么?持续时间(=计数*平均)大于应用程序的总执行时间又如何呢?

enter image description here

谢谢

1 个答案:

答案 0 :(得分:2)

如果我没有记错的话,您所看到的选项卡将显示线程在等待按类分组的每个锁时被阻塞的次数(即,此处将锁的多个实例视为相同)。您可能会看到累积持续时间长于应用程序总运行时间的原因是,它计算每个线程的等待时间。由于您有56个线程在运行(假设它们在应用程序的整个运行时中都运行),因此在一个特定的锁上进行阻塞所花费的最大时间约为64分钟(69s * 56)。