이 가이드는 시작 및 키 상호 작용에 대한 대기 시간을 최적화하여 Windows 애플리케이션의 응답성을 개선하는 데 도움이 됩니다. 응답성이 뛰어난 빠른 상호 작용(대기 시간이 짧은 상호 작용이라고도 함)은 더 나은 사용자 환경을 만듭니다. 상호 작용 기대치를 이해하고, 현재 기간을 측정하고, 상호 작용 클래스에 따라 개선 목표를 설정하면 사용자 환경과 만족도가 크게 향상될 수 있습니다.
반응형 동작에 대한 상호 작용 최적화를 위한 단계별 가이드
애플리케이션 시작, 메뉴 탐색 또는 페이지/콘텐츠 로드 속도가 느려지면 고객이 느낄 수 있습니다. 그들은 빠르고 원활한 경험을 기대하게되었고 우리는 아래의 기대를 더 잘 이해하기 위해 몇 가지 단계와 지침을 공유했습니다.
대기 시간 최적화를 구동하는 기본 단계는 다음과 같습니다.
시나리오를 정의하고 TraceLogging 이벤트를 추가합니다.
사용자가 앱을 사용하는 동안 실행, 메뉴 열기, 새 페이지로 이동, 콘텐츠 렌더링 등과 같은 주요 상호 작용 목록을 만듭니다. 이러한 각 상호 작용에 대해 측정 및 분석에 사용할 시작 이벤트 및 중지 이벤트를 추가합니다. ETW(Windows용 이벤트 추적)를 자체 설명하는 형식인 TraceLogging을 추가하는 방법에 대해 자세히 알아봅니다.
상호 작용 클래스에 따라 목표를 설정합니다.
사용자는 상호 작용 유형에 따라 앱의 성능 및 응답성에 대해 서로 다른 기대를 가지고 있습니다. 예를 들어 앱이 얼마나 빨리 시작되는지와 페이지가 로드되는 빈도를 예로 들어 줍니다. 사용자가 앱에서 주요 상호 작용을 완료하는 데 걸리는 허용되는 경과 시간 범위를 생각해 보세요. 이 범위는 200밀리초(밀리초)에서 5초(초)입니다. 그런 다음 각 태스크에 연결된 목표를 가진 상호 작용 클래스 레이블을 할당합니다. 다음은 응답성 인식을 개선하기 위해 UI(사용자 인터페이스)를 포함할 수 있는 방법에 대한 제안과 함께 몇 가지 기본 지침입니다.
| 상호 작용 클래스 레이블 | 사용자 인식 | 지연 범위 | 예제 | 제안된 UI |
|---|---|---|---|---|
| 빠름 | 거의 눈에 띄지 않는 지연 | 100 - 200밀리초 | 앱 바 열기, 오른쪽 클릭 메뉴 | |
| 대화형 | 빠르지만 빠르지는 않음 | 300 - 500ms | 앱을 종료하고 캐시된 검색 결과를 표시합니다. | |
| 일시 중지 | 빠르지는 않지만 반응성이 있는 느낌 | 500ms - 1초 | 다른 페이지로 이동하고, 일시 중단된 상태에서 앱을 다시 시작하며, 웹 검색 결과를 표시합니다. | 입구 애니메이션(예: 새 콘텐츠에서 플라이)을 사용하여 이 시나리오에 소요된 시간을 마스킹할 수 있습니다. |
| 기다림 | 시나리오에 대한 작업량으로 인해 빠르지 않음 | 1-3초 | 앱 시작 | 회전/대기 중인 커서를 사용하여 진행률을 기록할 수 있습니다. 출구 및 입구 애니메이션(예: 이전 페이지 플라이아웃, 새 페이지 플라이)을 사용하여 이 시나리오에 소요된 시간을 마스킹할 수 있습니다. |
| 긴 대기 | 응답성이 더 이상 느껴지지 않음 | 2 -5초 | 대형 앱 시작(확장된 시작 화면 사용) HD 비디오 스트림 시작 | 가능한 경우 사용자에 대한 "취소" 옵션을 포함하는 "로드 UI"가 표시됩니다. 로드 UI는 빠른 상호 작용 클래스 내에 표시되어야 합니다. 로드 UI는 백분율 또는 남은 시간을 표시할 필요가 없습니다. |
| 포로 | 긴 대기 – 피할 수 없는 긴/복잡한 시나리오용으로 예약됨 | 5 -10초 | 시스템 로그인 | 가능한 경우 사용자에 대한 "취소" 옵션을 포함하는 "로드 UI" 또는 대화 상자가 표시됩니다. 대화 상자는 빠른 상호 작용 클래스 내에 표시됩니다. 사용자에게 유용한 컨텍스트를 제공하는 경우 대화 상자에 남은 백분율 또는 시간이 표시됩니다. |
| 오래 걸리는 작업 | 긴 작업 – 사용자는 아마도 멀티태스킹을 하면서 작업 중에 다른 일로 전환할 것입니다 | 10 - 30+ 초 | 새 기능 또는 업데이트 설치, 대용량 파일 다운로드 | UI는 멀티태스킹 가능성을 반영하도록 설계되어야 합니다. 예상 완료 시간(백분율, 남은 시간 등)을 포함하여 진행률 대화 상자를 표시해야 합니다. 또는 UI를 완전히 최소화하고, 시나리오가 완료되었을 때만 사용자에게 토스트 알림으로 알릴 수 있습니다. |
특정 상호 작용에 대한 정확한 기간을 확인하려면 WPA(Windows Performance Analyzer)를 사용하여 추적을 캡처하고 분석할 수 있습니다.
추적을 캡처하기 전에 작업 관리자를 열고 CPU 사용률이 5%미만인지 확인하여 테스트 디바이스를 유휴 상태로 전환합니다. 이렇게 하면 측정 간섭을 최소화하고 적절한 크기 추적을 제공합니다. 이렇게 하면 측정하려는 상호 작용을 더 잘 격리할 수 있습니다.
다음 명령을 입력합니다.
wpr -start GeneralProfile -filemode앱에서 상호 작용 시나리오를 실행합니다.
다음 명령을 입력합니다.
wpr -stop Trace.etl
추적을 분석하고 개선 기회를 찾습니다.
WPA(Windows Performance Analyzer)에서 방금 캡처한 추적을 열어 앱에서 지원하는 각 키 상호 작용의 기간을 분석합니다.
- WPA에서 추적을 열려면 명령줄에서 다음을 입력합니다.
wpa.exe Trace.etl - 시스템 활동 드롭다운을 확장하고 "제네릭 이벤트"를 두 번 클릭하여 분석 보기를 엽니다.
- 애플리케이션과 관련된 이벤트 시리즈를 선택하고 원하는 키 상호 작용과 연결된 프로세스, 작업 이름 및 이벤트 이름을 찾을 수 있을 때까지 "공급자 이름" 드롭다운을 확장합니다. 상호 작용 이벤트의 기간은 시간 열과 그래프에 나열되어 기간, 시작 시간 및 종료 시간을 표시합니다.
추적 기간이 상호 작용 클래스 목표(예: 500ms)를 충족하지 않는 경우 앱의 키 스레드(UI 스레드일 수 있음)를 식별하고 CPU 사용량 및 대기에 대한 상위 스택을 확인합니다. *분석을 수행할 때 일부 문제는 사용자 고유의 애플리케이션 코드와 관련이 없을 수 있습니다.
- WPA에서 추적을 열려면 명령줄에서 다음을 입력합니다.
추가 리소스
Windows developer