Измерение отзывчивости пользовательского интерфейса приложения Windows

Есть ли метрика для отзывчивости приложения WinForms/Windows?

Что-то вроде процента времени, в течение которого цикл сообщений блокируется?

Как это можно получить?

2 ответа

Большое количество вызовов SendMessage(), которые доставляют сообщение прямо в оконную процедуру, выполняются в Windows или другом процессе. Не могу время тех. Косвенным измерением может быть SetTimer() и измерение того, как поздно доставляется сообщение WM_TIMER.

Как насчет установки события таймера для запуска, например, 10 раз в секунду, проверки каждый раз, когда событие запускает истекшее время с последнего раза, и отслеживания того, как часто это время превышает 250 мс, 500 мс, 750 мс и т. Д., Максимум до "10 секунд или больше"? С точки зрения пользователя, не имеет значения, блокируется ли цикл сообщений в 90% случаев, если он никогда не блокируется более 10 мс. С другой стороны, если цикл сообщений блокируется на 15 секунд за раз каждые пять минут, многие пользователи сочтут это неприемлемым, даже если цикл заблокирован всего 5% времени.

Другие вопросы по тегам