Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это руководство поможет повысить скорость реагирования приложения Windows, оптимизируя задержку при запуске и взаимодействии с ключами. Быстрые, адаптивные взаимодействия (иначе называемые низкой задержкой) создают лучший пользовательский интерфейс. Понимание ожиданий взаимодействия, измерение текущих длительности и установка целей для улучшения в зависимости от класса взаимодействия может привести к значительным улучшениям в опыте и удовлетворенности пользователей.
Пошаговое руководство по оптимизации взаимодействий для обеспечения адаптивного поведения
Клиенты могут чувствовать, что запуск приложения, навигация по меню или загрузка страниц или содержимого замедляется. Они пришли ожидать быстрый, простой опыт, и мы поделились некоторыми шагами и рекомендациями, чтобы лучше понять эти ожидания ниже.
Ниже приведены основные действия по оптимизации задержки на диске.
Определите сценарий и добавьте события TraceLogging.
Создайте список ключевых взаимодействий, через которые будет проходить пользователь при использовании вашего приложения, таких как запуск, открытие меню, переход на новую страницу и отрисовка содержимого и т. д. Для каждого из этих взаимодействий добавьте событие начала и окончания, которые будут использоваться для измерения и анализа. Узнайте больше о том, как добавить TraceLogging, формат для самостоятельного описания трассировки событий для Windows (ETW).
Задайте цели на основе класса взаимодействия.
Пользователи имеют различные ожидания для производительности и реагирования приложения в зависимости от типа взаимодействия. Например, как быстро запускается приложение и как быстро загружается страница. Подумайте о допустимом диапазоне истекшего времени, которое требуется пользователям для завершения ключевых взаимодействий в приложении. Это может быть от 200 миллисекунд (мс) до 5 секунд (с). Затем назначьте каждую задачу меткой класса взаимодействия с связанной целью. Ниже приведены некоторые основные рекомендации, а также рекомендации по включению пользовательского интерфейса для улучшения восприятия отклика:
| Метка класса взаимодействия | Восприятие пользователя | Диапазон задержки | Примеры | Предлагаемый пользовательский интерфейс |
|---|---|---|---|---|
| Быстрый | Минимальная заметная задержка | 100 – 200 миллисекунда | Откройте панель приложений, щелкните правой кнопкой мыши меню | |
| Interactive | Быстрая, но не скоростная | 300 – 500 мс | Выход из приложения, отображение кэшированных результатов поиска | |
| Пауза | Не быстро, но чувствует себя адаптивным | 500 мс – 1 с | Переход на другую страницу, возобновление приложения из приостановленного состояния, отображение результатов поиска в Интернете | Анимация входа (например, эффект появления нового контента) может использоваться для маскировки времени задержки в этом сценарии. |
| Ожидание | Не быстро из-за объема работы для сценария | 1 – 3 с | Запуск приложения | Для индикации хода выполнения может использоваться вращающийся курсор или курсор ожидания. Для маскировки времени, затраченного на этот сценарий, можно использовать как анимацию выхода, так и анимацию входа (например, проезд старой страницы и проезд новой страницы). |
| Долгое ожидание | Больше не является отзывчивым | 2 – 5 с | Запуски крупных приложений (использование расширенного экрана-заставки), запуск видеопотока HD | Отображается интерфейс "Загрузка UI" – там, где это возможно, добавьте опцию "Отмена" для пользователя. Пользовательский интерфейс загрузки должен отображаться в классе быстрого взаимодействия. Пользовательский интерфейс загрузки не должен отображать процент или время, оставшееся. |
| пленённый | Долгое ожидание — зарезервировано для неизбежных длительных и сложных сценариев | 5 – 10 с | Системный вход | Отображается либо интерфейс "Загрузка", либо диалоговое окно – по возможности, включите параметр "отмена" для пользователя. Диалоговое окно должно отображаться в классе быстрого взаимодействия. Диалоговое окно должно отображать процент или время, оставшееся, если это обеспечит полезный контекст для пользователя. |
| Долгое время | Длительные операции — пользователи, вероятно, будут заниматься многозадачностью (переключаться на другие задачи во время операции) | 10 – 30+ с | Установка новых компонентов или обновлений, скачивание больших файлов | Пользовательский интерфейс должен быть разработан для отражения возможности многозадачности. Диалоговое окно хода выполнения должно отображаться, включая оценку завершения (процент, оставшееся время и т. д.). Кроме того, пользовательский интерфейс может полностью свести к минимуму и уведомить пользователя только о завершении сценария с помощью всплывающего уведомления. |
Чтобы проверить точную длительность конкретных взаимодействий, можно записать и проанализировать трассировку с помощью анализатора производительности Windows (WPA).
Прежде чем записывать трассировку, переведите тестовое устройство в режим ожидания, открыв диспетчер задач и убедитесь, что загрузка ЦП составляет менее 5%. Это позволит свести к минимуму помехи при измерении и обеспечить разумные размеры трассировок. Это поможет вам лучше изолировать взаимодействие, которое вы стремитесь измерить.
Чтобы записать трассировку, откройте командную строку (PowerShell или командную строку) в режиме администратора.
Введите команду :
wpr -start GeneralProfile -filemodeЗапустите сценарий взаимодействия в приложении.
Введите команду :
wpr -stop Trace.etl
Анализ трассировки и поиск возможностей улучшения.
Проанализируйте длительность каждого важного взаимодействия, поддерживаемого вашим приложением, открыв трассировку, которую вы только что захватили в анализаторе производительности Windows (WPA).
- Чтобы открыть трассировку в WPA, в командной строке введите:
wpa.exe Trace.etl - Разверните раскрывающийся список "Системное действие " и дважды щелкните "Универсальные события", чтобы открыть представление анализа.
- Выберите серию событий, связанную с вашим приложением, и разверните раскрывающийся список "Имя поставщика", пока не сможете найти имя процесса, имя задачи и имя события, связанные с ключевым взаимодействием, которое вы ищете. Длительность события взаимодействия будет указана в столбце "Время" , а также в графе , где отображается длительность, время начала и время окончания.
Если длительность трассировки не соответствует целям класса взаимодействия (например, 500 мс), определите ключевые потоки для приложения (вероятно, поток пользовательского интерфейса) и просмотрите верхние стеки для использования ЦП и ожидания. *Помните, что при выполнении анализа некоторые проблемы могут не быть характерными для собственного кода приложения.
- Чтобы открыть трассировку в WPA, в командной строке введите:
Дополнительные ресурсы
Windows developer