Разница в счетчиках производительности .NET Lock - PullRequest
1 голос
/ 02 февраля 2012

В чем разница между счетчиками производительности окон «Общее количество конфликтов» и «Пик длины очереди» в категории «.NET CLR LocksAndThreads»? Документация MSDN доступна здесь: http://msdn.microsoft.com/en-us/library/zf749bat.aspx.

Я думаю, что моя путаница связана с разницей между «количеством потоков, которые безуспешно пытались получить блокировку» и «общим числом потоков, которые ожидали получения управляемой блокировки с момента запуска приложения». По сути, в чем разница между ожиданием получения блокировки, которое, как я понимаю, означает, что кто-то другой удерживает его, когда вы пытаетесь получить его, и попыткой получения блокировки безуспешно? Единственное, о чем я могу подумать, связано с попыткой получения блокировки, например, Monitor.TryEnter против Monitor.Enter.

1 Ответ

1 голос
/ 02 февраля 2012

Я бы подумал о 3 сценариях при попытке получить блокировку:
a) ресурс не заблокирован другим объектом, получен немедленно
b) ресурс заблокирован, но освобожден вовремя, получен с задержкой
c)ресурс заблокирован, но не освобожден вовремя, время получения истекло

Общее количество конфликтов - всего сценария (c)
Пик длины очереди - в любой момент времени наибольшее количество потоков в состоянии (b)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...