Каковы точные значения количества и длительности в JFR - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть многопоточное приложение, которое работает в течение 1m9s (с 56 одновременными потоками).Снимок экрана JFR о состязаниях показан ниже.Что мне не понятно:

  1. Что означает поле «Количество»?Сколько раз была получена блокировка?
  2. Что означает среднее значение?И как получается, что Длительность (= количество * среднее) больше, чем общее время выполнения приложения?

enter image description here

Спасибо,

1 Ответ

0 голосов
/ 22 ноября 2018

Если я правильно помню, вкладка, на которую вы смотрите, показывает, сколько раз поток блокировался в ожидании каждой блокировки, сгруппированной по классу (т.е. он считает несколько экземпляров блокировки одинаковыми здесь).Причина, по которой вы можете увидеть совокупную продолжительность, превышающую общее время выполнения приложения, заключается в том, что оно подсчитывает время ожидания каждого потока.Поскольку у вас запущено 56 потоков (при условии, что они работают в течение всего времени выполнения приложения), максимальное время, которое можно потратить на блокировку одной конкретной блокировки, составляет около 64 минут (69 с * 56).

...