Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как использовать средства мониторинга производительности из Windows Performance Toolkit для создания подробных профилей производительности для приложений WinUI.
Как использовать средство записи производительности Windows для мониторинга приложений WinUI?
Средство записи производительности Windows (WPR) можно использовать для создания подробных записей трассировки событий для Windows (ETW) поведения системы и приложений и использования ресурсов на основе встроенных профилей. Затем эти записи ETW можно обрабатывать с помощью Windows Performance Analyzer (WPA) для создания набора графов и таблиц для упрощения потребления и глубокого анализа использования ЦП, проблем с питанием, низкой производительности системы или приложения и других проблем с производительностью.
Замечание
Хотя в WPR существуют как графические интерфейсы, так и версии командной строки, эта статья относится только к версии графического интерфейса пользователя (дополнительные сведения об обоих версиях см. в разделе "Введение в WPR ").
Профили WPR
Профили WPR используются для сбора информации о различных аспектах и поведении приложения.
На следующем изображении показано окно "Средства записи производительности Windows" с выбранными профилями "Загрузка ЦП" (использование центрального процессора для каждого процессора в системе) и "Активность XAML" (события от связанных с XAML поставщиков, таких как WinUI).
Как использовать Анализатор производительности Windows с приложениями WinUI?
WinUI — это декларативное API для ретенционного режима, в котором приложение описывает дерево UIElements, а WinUI выполняет раскладку и отрисовку. Это делается в потоке пользовательского интерфейса в пакетах с именем "кадры", которые должны выполняться быстро, в идеале в течение одного интервала обновления дисплея. Если кадры выполняются долго, то это не только задерживает обновления от отображения на экране, но также мешает потоку пользовательского интерфейса обрабатывать входные данные. Медленные кадры, хотя и не единственная причина проблем с отзывчивостью, являются одной из наиболее распространенных.
Установите плагин "Анализ XAML-кадров"
WinUI регистрирует события ETW, отслеживающие начало и остановку каждого кадра (показан на следующем снимке экрана таблицы WPA "Универсальные события"). Тем не менее, поскольку длительность каждого кадра должна вычисляться вручную, трудно определить случаи медленных кадров.
Для решения этой проблемы в Набор средств оценки Windows (ADK) 10.1.26100.1 и более поздние версии включён новый подключаемый модуль таблицы XAML Frame Analysis. Эта таблица вычисляет и показывает длительность каждого кадра (а также другие операции, которые используют много времени).
Замечание
Для таблицы "Анализ кадров XAML" требуется Windows Performance Analyzer (WPA) из Windows ADK 10.1.26100.1 или более поздней версии. Версия WPR, используемая для выполнения трассировки, не имеет значения.
После установки ADK таблица "Анализ кадров XAML" должна быть включена, изменив файл конфигурации "perfcore.ini" в папке WPA (как правило, C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit). Для этого закройте все открытые экземпляры WPA, откройте "perfcore.ini" в текстовом редакторе, добавьте perf_xaml.dll в список библиотек DLL и сохраните и закройте файл. Перезапустите WPA, который теперь должен отображать граф "Анализ кадров XAML" в нижней части раздела "Системное действие".
Используйте плагин "Анализ кадров XAML"
Анализ кадров Xaml поддерживает два представления (оба представления показывают одни и те же столбцы):
- "Интересные фреймы Xaml" (по умолчанию) — показывает фреймы WinUI на основе эвристики, которые с наибольшей вероятностью вызывают проблемы с отзывчивостью. Они соответствуют регионам, которые начинаются с таких операций, как инициализация WinUI, навигация по кадрам или отображение всплывающего окна, и заканчиваются в конце следующего кадра. Эти сценарии обычно включают обширные изменения в дереве UIElement и наиболее подвержены проблемам с производительностью.
- "Все сведения о Xaml" — отображает все кадры WinUI из всех процессов, найденных в трассировке. Для операций, таких как кадр или передача макета, подключаемый модуль автоматически вычисляет и отображает длительность на основе событий запуска и остановки.
На следующем снимке экрана показано, как переключаться между представлениями анализа кадров Xaml.
Оба представления анализа рамок Xaml включают следующие столбцы:
| Заголовок | Ценность |
|---|---|
| Процедура | Имя процесса и идентификатор |
| Идентификатор потока | Идентификатор потока |
| Тип | Описывает событие, соответствующее строке. Возможные значения включают:
|
| ИнтересноЛи | Считается ли строка интересной. В представлении "Интересные строки Xaml" отображаются только значимые строки. |
| Длительность (мс) | Длительность строки. Вычисляется из событий запуска и остановки. |
| Вес (мс) | Фактическое время выполнения процессора, соответствующее продолжительности. |
| Старт (s) | Время события "Запуск" |
| Стоп | Время события остановки |
Столбцы можно отсортировать по типу или длительности, чтобы определить потенциальные проблемы, такие как самые дорогие, самые длинные кадры длительности в трассировке (см. следующее изображение). Вы также можете детализировать определенные строки, чтобы определить дорогостоящие операции и потенциальные оптимизации.
Windows developer