Windows アプリの応答性を向上させる
このガイドは、起動と主要な操作の待機時間を最適化することで、Windows アプリケーションの応答性を向上させるのに役立ちます。 迅速で応答性の高い対話 (低待機時間の対話とも呼ばれます) により、ユーザー エクスペリエンスが向上します。 相互作用の期待を理解し、現在の期間を測定し、対話クラスに応じて改善の目標を設定すると、ユーザーのエクスペリエンスと満足度が大幅に向上する可能性があります。
応答性の高い動作のための相互作用の最適化に関するステップ バイ ステップ ガイド
お客様は、アプリケーションの起動、メニュー ナビゲーション、またはページ/コンテンツの読み込みが遅いと感じることができます。 彼らは迅速でシームレスなエクスペリエンスを期待するようになったので、これらの期待をより深く理解するためのいくつかの手順とガイダンスを以下で共有しました。
待機時間の最適化を推進する基本的な手順は次のとおりです。
シナリオを定義し、TraceLogging イベントを追加します。
起動、メニューの開き、新しいページへの移動、コンテンツのレンダリングなど、アプリの使用中にユーザーが行う主要な操作の一覧を作成します。これらの相互作用ごとに、測定と分析に使用する開始イベントと停止イベントを追加します。 Windows 用の自己記述型イベント トレース (ETW) の形式である TraceLoggingを追加する方法について説明します。
相互作用クラスに基づいて目標を設定します。
ユーザーは、操作の種類に応じて、アプリのパフォーマンスと応答性に対して異なる期待を持っています。 たとえば、アプリの起動速度とページの読み込みの速さなどです。 ユーザーがアプリでタスクを完了するためにかかる経過時間の容認できる範囲 (対話式操作クラス) を考えます。 これは 200 ミリ秒 (ミリ秒) から 5 秒 (秒) までの範囲です。 次に、各タスクに、関連する目標を持つ相互作用クラス ラベルを割り当てます。 以下は、いくつかの基本的なガイドラインと、応答性の認識を向上させるためにユーザー インターフェイス (UI) を含める方法に関する提案です。
対話式操作クラス ラベル | ユーザーの認識 | 遅延の範囲 | 例 | 提案日 |
---|---|---|---|---|
高速 | 最小限の目立った遅延 | 100 ~ 200 ミリ秒 | アプリ バーを開き、右クリック メニュー | |
Interactive | 早いですが、高速ではありません | 300 ~ 500 ミリ秒 | アプリを終了し、キャッシュされた検索結果を表示する | |
Pause | 早くないが、レスポンシブだと感じる | 500ミリ秒 ~ 1 秒 | 別のページに移動する、中断状態からアプリを再開する | 開始アニメーション (たとえば、新しいコンテンツで飛ぶ) を使用して、このシナリオにかかった時間をマスクできます。 |
待機 | シナリオの作業量が原因で迅速ではない | 1 ~ 3 秒 | アプリの起動 | 回転/待機中のカーソルを使用して進行状況を確認できます。 終了アニメーションと開始アニメーション (たとえば、古いページを飛ぶ、新しいページを飛ぶ) の両方を使用して、このシナリオにかかった時間をマスクできます。 |
長い待ち時間 | レスポンシブだと感じなくなった | 2 ~ 5 秒 | 大規模なアプリの起動 (拡張スプラッシュ画面を使用)、HD ビデオ ストリームの開始 | "読み込み UI" が表示されます。可能な場合は、ユーザーの "キャンセル" オプションを含めます。 読み込み UI は、高速対話クラス内に表示されます。 読み込み UI では、パーセンテージまたは時間の再表示メイン必要はありません。 |
キャプティブ | 長い待ち時間 – 避けられない長い/複雑なシナリオのために予約されています | 5 ~ 10 秒 | システム ログイン | "読み込み UI" またはダイアログが表示されます。可能な場合は、ユーザーの "キャンセル" オプションを含めます。 ダイアログは、高速対話クラス内に表示されます。 ダイアログには、ユーザーに有用なコンテキストが提供される場合はメイン再びパーセンテージまたは時間が表示されます。 |
長時間実行 | 長い操作 – ユーザーはおそらくマルチタスクになります (操作中に切り替えます) | 10 ~ 30秒以上 | 新機能または更新プログラムのインストール、大きなファイルのダウンロード | UI は、マルチタスクの可能性を反映するように設計する必要があります。 完了の見積もり (パーセンテージ、時間の再メインなど) を含む進行状況ダイアログが表示されます。 または、UI を完全に最小化し、トースト通知を使用してシナリオが完了したときにのみユーザーに通知できます。 |
特定の操作の正確な期間をチェックするには、Windows パフォーマンス アナライザー (WPA)を使用してトレースをキャプチャして分析します。
トレースをキャプチャする前に、タスク マネージャーを開き、CPU 使用率が 5% 未満であることを確認して、テスト デバイスをアイドル状態にします。 これにより、測定の干渉を最小限に抑え、妥当なサイズ トレースを提供します。 これにより、測定を目的とする相互作用をより適切に分離できます。
トレースをキャプチャするには、管理者モードでコマンド ライン (PowerShell またはコマンド プロンプト) を開きます。
コマンド
wpr -start GeneralProfile -filemode
を入力します。アプリで対話シナリオを実行します。
コマンド
wpr -stop Trace.etl
を入力します。
トレースを分析し、改善の機会を見つけます。
Windows パフォーマンス アナライザー (WPA)でキャプチャしたトレースを開いて、アプリでサポートされている各キー操作の期間を分析します。
- WPA でトレースを開くには、コマンド ラインで次のように入力します:
wpa.exe Trace.etl
- [システム アクティビティ] ドロップダウンを展開し、[汎用イベント] をダブルクリックして分析ビューを開きます。
- アプリケーションに関連するイベント系列を選択し、探しているキー操作に関連付けられているプロセス、タスク名、およびイベント名が見つかるまで [プロバイダー名] ドロップダウンを展開します。 相互作用イベントの期間は、[時間] 列とグラフに表示され、[期間]、[開始時刻]、[終了時刻] が表示されます。
トレースの期間が相互作用クラスの目標 (例: 500 ミリ秒) を満たしていない場合は、アプリのキー スレッド (おそらく UI スレッド) を特定し、CPU 使用率と待機の上位スタックを確認します。 *分析を実行する際に、一部の問題が独自のアプリケーションのコードに固有ではない可能性があることに注意してください。
- WPA でトレースを開くには、コマンド ラインで次のように入力します:
その他のリソース
Windows developer