Анализ потребления ресурсов и активности потока пользовательского интерфейса (XAML)
Используйте профилировщик временной шкалы приложения , чтобы найти и устранить проблемы производительности, связанные с взаимодействием приложений XAML. Это средство помогает повысить производительность приложения XAML, показывая подробное представление потребления ресурсов приложений. Вы можете проанализировать время, затраченное приложением на подготовку кадров пользовательского интерфейса (макет и отрисовку), обслуживание сетевых и дисковых запросов, а также в таких сценариях, как запуск приложения, загрузка страницы и изменение размера Windows.
Временная диаграмма приложения — это одно из средств, которые можно запустить с помощью команды Debug>Performance Profiler.
Это средство заменяет средство отклика пользовательского интерфейса XAML, которое было частью диагностического набора инструментов в более ранних версиях Visual Studio.
Это средство можно использовать на следующих платформах:
- Универсальные приложения Windows (в Windows 10 и более поздних версиях)
- Windows 8.1
- Windows Presentation Foundation (.NET 4.0 и выше)
- Windows 7
Заметка
Вы можете собирать и анализировать данные об использовании ЦП и данные потребления энергии вместе с данными ApplicationTimeline. См. статью Запуск средств профилирования при выпуске или отладке сборок.
Сбор данных временной шкалы приложения
Вы можете профилизировать скорость реагирования приложения на локальном компьютере, подключенном устройстве, симуляторе Visual Studio или эмуляторах или удаленном устройстве. См. статью Запуск средств профилирования при выпуске или отладке сборок.
Совет
По возможности запустите приложение непосредственно на устройстве. Производительность приложения, наблюдаемая на симуляторе или через подключение к удаленному рабочему столу, может не совпадать с фактической производительностью на устройстве. С другой стороны, сбор данных с помощью удаленных средств Visual Studio не влияет на данные производительности.
Ниже приведены основные шаги.
Откройте приложение XAML.
Щелкните Отладка / Профилировщик производительности. Вы должны увидеть список средств профилирования в окне .diagsession.
Выберите временную шкалу приложения и нажмите кнопку Запустить в нижней части окна.
инструмент временной шкалы приложений
Заметка
Может появиться окно управления учетными записями пользователей, запрашивающее разрешение на запуск VsEtwCollector.exe. Щелкните Да.
Запустите сценарий, который вы хотите профилировать в приложении, чтобы собирать данные о производительности.
Чтобы остановить профилирование, вернитесь в окно .diagsession и нажмите Остановить в верхней части окна.
Visual Studio анализирует собранные данные и отображает результаты.
Анализ профилирования данных временной шкалы
После сбора данных профилирования можно выполнить следующие действия, чтобы начать анализ:
Просмотрите информацию на графиках использования потоков пользовательского интерфейса и визуальной пропускной способности (FPS), а затем воспользуйтесь панелями навигации временной шкалы, чтобы выбрать диапазон времени, который вы хотите проанализировать.
Используя информацию в графиках использования потоков UI или визуальной производительности (FPS), используйте представление Подробности о временной шкале, чтобы найти возможные причины любого кажущегося отсутствия отклика.
Сценарии отчетов, категории и события
Инструмент "Хронология приложений" отображает данные о времени для сценариев, категорий и событий, связанных с производительностью XAML.
Временная шкала сеанса диагностики
Линейка в верхней части страницы отображает хронологию профилированной информации. Эта временная шкала применяется как к графику использования потока пользовательского интерфейса , так и к графику визуальной пропускной способности. Чтобы выбрать сегмент временной шкалы, можно сузить область отчета, перетащив панели навигации на временной шкале.
Временная шкала также отображает все пользовательские метки, которые вы вставляете, и события жизненного цикла активации приложения.
График использования потоков пользовательского интерфейса
Диаграмма использования потоков пользовательского интерфейса
График визуальной пропускной способности (FPS)
Линейный график визуальной пропускной способности (FPS) показывает кадры в секунду (FPS) в пользовательском интерфейсе и потоке компоновки для приложения.
Сведения о временной шкале
Детальный просмотр — это место, где вы тратите большую часть времени на анализ отчета. В нем показано использование ЦП приложением, классифицированным подсистемой UI Framework или системным компонентом, который использовал ЦП.
Поддерживаются следующие события:
Имя | Описание |
---|---|
синтаксический анализ | Время, затраченное на анализ ФАЙЛОВ XAML и создание объектов. Расширение узла синтаксического анализа |
Макет | В больших приложениях тысячи элементов могут отображаться на экране одновременно. Это может привести к низкой частоте кадров пользовательского интерфейса и, соответственно, низкой скорости отклика приложения. Событие Layout точно определяет затраты на расположение каждого элемента (то есть время, затраченное на Arrange, Measure, ApplyTemplate, ArrangeOverride и MeasureOverride). Он также создает деревья визуальных элементов, которые приняли участие в процессе макетирования. С помощью этой визуализации можно определить, какие логические деревья следует обрезать или оценить другие механизмы отсрочки для оптимизации передачи макета. |
рендеринг | Время, затраченное на рисование элементов XAML на экран. |
I/0 | Время, затраченное на получение данных из локального диска или из сетевых ресурсов, к которым обращается через API Microsoft Windows Internet (WinINet). |
код приложения | Время, затраченное на выполнение кода приложения (пользователя), который не связан с анализом или макетом. |
Xaml Other | Время, затраченное на выполнение кода среды выполнения XAML. |
Совет
Выберите средство использования ЦП вместе с средством временной шкалы приложений при запуске профилирования для просмотра методов приложения, выполняемых в потоке пользовательского интерфейса. Перемещение длительного кода приложения в фоновый поток может повысить скорость реагирования пользовательского интерфейса.
Настройка деталей временной шкалы
Используйте сведения о временной шкале панели инструментов для сортировки, фильтрации и указания заметок сведений о временной шкале представлении записей.
Имя | Описание |
---|---|
Сортировка по | Сортировка по времени начала или продолжительности событий. |
![]() |
Добавляет или удаляет категорию кадра верхнего уровня, которая группирует события по кадру. |
![]() |
Фильтрует список по выбранным категориям и длине событий. |
![]() |
Позволяет указать аннотации к событиям. |
Связанное содержимое
- блог команды WPF : новый инструмент анализа производительности пользовательского интерфейса для приложений WPF
- рекомендации по повышению производительности приложений UWP с помощью C++, C#и Visual Basic
- Оптимизация производительности приложений WPF
- профилирование в Visual Studio
- Первый взгляд на средства профилирования