Использование счетчиков производительности рабочих единиц
Счетчики производительности рабочих единиц позволяют платформе Windows получить представление о процессах приложения. Рабочие единицы позволяют приложениям описывать, какие части приложения выполняются в определенном процессе, и запрашивать владение. Например, веб-браузер имеет собственный диспетчер задач для управления всеми своими процессами; с помощью счетчика производительности рабочей единицы этот уровень детализации и управления можно получить в диспетчере задач Windows.
Например, рассмотрим браузер Microsoft Edge, работающий на устройстве пользователя. Браузер выполняется в определенном процессе, но другие процессы создаются для размещения вкладок, сетевых и звуковых служб, расширений и других функций. Конкретный процесс можно использовать для выполнения нескольких единиц работы, и разные приложения могут совместно использовать их. Внутренне браузер знает о своих зависимостях и способах взаимодействия с необходимыми процессами, но платформа Windows и другие приложения не знают, как создается браузер. Наличие таких сведений полезно для предоставления более точных сведений об использовании ресурсов и помощи в диагностике проблем с приложением; Диспетчер задач может сообщать, какие единицы работы выполняются в процессе. Благодаря этому отладчики могут упростить рабочие нагрузки разработчика, описывая, какие работы выполняются в процессе.
Каждая рабочая единица имеет следующие свойства.
- AppOwnerProcessId: идентификатор процесса, которому принадлежит данная рабочая единица.
- HostProcessId: идентификатор процесса, в котором выполняется данная рабочая единица.
- Тип: способ интерпретации рабочей единицы приложением, получающим его.
- Заголовок: метка для рабочей единицы.
- UniqueId: идентификатор рабочей единицы.
Контракт данных
Сведения, совместно используемые с рабочими единицами на платформе Windows, доступны для запроса любым приложением, работающим в системе. Данные предоставляются и используются с помощью API счетчика производительности, общедоступных и задокументированных. В рамках реализации счетчики производительности должны иметь уникальную строку идентификатора, которая используется для идентификации метки для рабочей единицы. Ожидаемый формат строки уникального идентификатора счетчика производительности — .
- Строка в начале WorkUnit.
- 1 на основе uniqueId.
- идентификатор процесса, в котором выполняется рабочая группа.
- идентификатор процесса main, который представляет приложение.
- понятное название рабочей группы.
Примечание
Если необходимо обновить сведения о рабочей единице (например, название было изменено), он сохраняет свой uniqueId. Новые единицы должны использовать новые уникальные идентификаторы. Значение uniqueId должно быть сцеплено с помощью символа "|", как показано в следующем примере.
Образец.
"WorkUnit|1|4321|1019|Instance 1 of pid 1111, owned by 1111"
"WorkUnit|1|8765|1019|Instance 1 of pid 5555, owned by 5555"
"WorkUnit|1|9999|1019|Instance 1 of pid 9999, owned by 9999"
"WorkUnit|2|4321|1019|Instance 2 of pid 1234, owned by 4321"
"WorkUnit|2|8765|1019|Instance 2 of pid 5678, owned by 8765"
Предоставление рабочих единиц
Вы можете создавать экземпляры набора счетчиков производительности рабочей единицы с помощью API счетчика производительности. Следуйте описанному выше контракту данных , чтобы убедиться, что другие приложения могут успешно проверять и использовать ваши данные.
Визуализация рабочих единиц
Если вы хотите запрашивать данные из счетчика производительности рабочей единицы, можно использовать API счетчика производительности или приложение Монитор производительности.
- Введите "perfmon" в командной строке или в диалоговом окне Выполнить, чтобы запустить средство PerfMon.
- Выберите "Монитор производительности" в разделе "Средства мониторинга".
- Нажмите кнопку "Добавить счетчики" (зеленый знак "+").
- Выберите и разверните раздел "Рабочая единица", чтобы просмотреть счетчики, предоставляемые запущенными приложениями.
- Выберите указанные счетчики: "Идентификатор процесса владельца приложения" и "Идентификатор хост-процесса".
- Выберите "Все экземпляры" и нажмите кнопку "Добавить".
- Нажмите кнопку "ОК".
- Выбор счетчика рабочей единицы в пользовательском
![]()