Поделиться через


Анализ потребления ресурсов и активности потока пользовательского интерфейса (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 не влияет на данные производительности.

Ниже приведены основные шаги.

  1. Откройте приложение XAML.

  2. Щелкните Отладка / Профилировщик производительности. Вы должны увидеть список средств профилирования в окне .diagsession.

  3. Выберите временную шкалу приложения и нажмите кнопку Запустить в нижней части окна.

    Выбран инструмент временной шкалы приложений инструмент временной шкалы приложений

    Заметка

    Может появиться окно управления учетными записями пользователей, запрашивающее разрешение на запуск VsEtwCollector.exe. Щелкните Да.

  4. Запустите сценарий, который вы хотите профилировать в приложении, чтобы собирать данные о производительности.

  5. Чтобы остановить профилирование, вернитесь в окно .diagsession и нажмите Остановить в верхней части окна.

    Visual Studio анализирует собранные данные и отображает результаты.

    Отчет профилировщика временной шкалы

Анализ профилирования данных временной шкалы

После сбора данных профилирования можно выполнить следующие действия, чтобы начать анализ:

  1. Просмотрите информацию на графиках использования потоков пользовательского интерфейса и визуальной пропускной способности (FPS), а затем воспользуйтесь панелями навигации временной шкалы, чтобы выбрать диапазон времени, который вы хотите проанализировать.

  2. Используя информацию в графиках использования потоков UI или визуальной производительности (FPS), используйте представление Подробности о временной шкале, чтобы найти возможные причины любого кажущегося отсутствия отклика.

Сценарии отчетов, категории и события

Инструмент "Хронология приложений" отображает данные о времени для сценариев, категорий и событий, связанных с производительностью XAML.

Временная шкала сеанса диагностики

временная шкала производительности и диагностики

Линейка в верхней части страницы отображает хронологию профилированной информации. Эта временная шкала применяется как к графику использования потока пользовательского интерфейса , так и к графику визуальной пропускной способности. Чтобы выбрать сегмент временной шкалы, можно сузить область отчета, перетащив панели навигации на временной шкале.

Временная шкала также отображает все пользовательские метки, которые вы вставляете, и события жизненного цикла активации приложения.

График использования потоков пользовательского интерфейса

граф использования ЦП

Диаграмма использования потоков пользовательского интерфейса (%) — это столбчатая диаграмма, отображающая относительный объем времени, затраченного на категорию в течение периода сбора.

График визуальной пропускной способности (FPS)

граф визуальной пропускной способности

Линейный график визуальной пропускной способности (FPS) показывает кадры в секунду (FPS) в пользовательском интерфейсе и потоке компоновки для приложения.

Сведения о временной шкале

Детальный просмотр — это место, где вы тратите большую часть времени на анализ отчета. В нем показано использование ЦП приложением, классифицированным подсистемой UI Framework или системным компонентом, который использовал ЦП.

Поддерживаются следующие события:

Имя Описание
синтаксический анализ Время, затраченное на анализ ФАЙЛОВ XAML и создание объектов.

Расширение узла синтаксического анализа в сведениях о временной шкале отображает цепочку зависимостей всех файлов XAML, которые были проанализированы из-за корневого события. Этот совет позволяет определить ненужный анализ файлов и создание объектов в сценариях с учетом производительности и оптимизировать их.
Макет В больших приложениях тысячи элементов могут отображаться на экране одновременно. Это может привести к низкой частоте кадров пользовательского интерфейса и, соответственно, низкой скорости отклика приложения. Событие Layout точно определяет затраты на расположение каждого элемента (то есть время, затраченное на Arrange, Measure, ApplyTemplate, ArrangeOverride и MeasureOverride). Он также создает деревья визуальных элементов, которые приняли участие в процессе макетирования. С помощью этой визуализации можно определить, какие логические деревья следует обрезать или оценить другие механизмы отсрочки для оптимизации передачи макета.
рендеринг Время, затраченное на рисование элементов XAML на экран.
I/0 Время, затраченное на получение данных из локального диска или из сетевых ресурсов, к которым обращается через API Microsoft Windows Internet (WinINet).
код приложения Время, затраченное на выполнение кода приложения (пользователя), который не связан с анализом или макетом.
Xaml Other Время, затраченное на выполнение кода среды выполнения XAML.

Совет

Выберите средство использования ЦП вместе с средством временной шкалы приложений при запуске профилирования для просмотра методов приложения, выполняемых в потоке пользовательского интерфейса. Перемещение длительного кода приложения в фоновый поток может повысить скорость реагирования пользовательского интерфейса.

Настройка деталей временной шкалы

Используйте сведения о временной шкале панели инструментов для сортировки, фильтрации и указания заметок сведений о временной шкале представлении записей.

Имя Описание
Сортировка по Сортировка по времени начала или продолжительности событий.
Группировать события по кадрам Добавляет или удаляет категорию кадра верхнего уровня, которая группирует события по кадру.
список сведений о временной шкале фильтра Фильтрует список по выбранным категориям и длине событий.
Настройте информацию о деталях временной шкалы Позволяет указать аннотации к событиям.