次の方法で共有


Windows アプリの応答性を向上させる

このガイドは、起動と主要な操作の待機時間を最適化することで、Windows アプリケーションの応答性を向上させるのに役立ちます。 迅速で応答性の高い対話 (低待機時間の対話とも呼ばれます) により、ユーザー エクスペリエンスが向上します。 相互作用の期待を理解し、現在の期間を測定し、対話クラスに応じて改善の目標を設定すると、ユーザーのエクスペリエンスと満足度が大幅に向上する可能性があります。

応答性の高い動作のための相互作用の最適化に関するステップ バイ ステップ ガイド

お客様は、アプリケーションの起動、メニュー ナビゲーション、またはページ/コンテンツの読み込みが遅いと感じることができます。 彼らは迅速でシームレスなエクスペリエンスを期待するようになったので、これらの期待をより深く理解するためのいくつかの手順とガイダンスを以下で共有しました。

待機時間の最適化を推進する基本的な手順は次のとおりです。

  1. シナリオを定義し、TraceLogging イベントを追加します。

    起動、メニューの開き、新しいページへの移動、コンテンツのレンダリングなど、アプリの使用中にユーザーが行う主要な操作の一覧を作成します。これらの相互作用ごとに、測定と分析に使用する開始イベントと停止イベントを追加します。 Windows 用の自己記述型イベント トレース (ETW) の形式である TraceLogging を追加する方法について説明します。

  2. 相互作用クラスに基づいて目標を設定します。

    ユーザーは、操作の種類に応じて、アプリのパフォーマンスと応答性に対して異なる期待を持っています。 たとえば、アプリの起動速度とページの読み込みの速さなどです。 ユーザーがアプリで主要な操作を完了するのにかかる経過時間の許容範囲を考えてみましょう。 これは 200 ミリ秒 (ミリ秒) から 5 秒 (秒) までの範囲です。 次に、各タスクに、関連する目標を持つ相互作用クラス ラベルを割り当てます。 以下は、いくつかの基本的なガイドラインと、応答性の認識を向上させるためにユーザー インターフェイス (UI) を含める方法に関する提案です。

相互作用クラス のラベル ユーザーの認識 遅延の範囲 例示 推奨される UI
速い ほとんど気付かれない遅延 100 ~ 200 ミリ秒 アプリ バーを開き、右クリック メニュー
インタラクティブ クイックですが、高速ではありません 300 ~ 500 ミリ秒 アプリを終了し、キャッシュされた検索結果を表示する
一時停止 迅速ではありませんが、応答性が高い 500 ミリ秒 - 1 秒 別のページに移動し、中断状態からアプリを再開し、Web 検索結果を表示する 新しいコンテンツを飛び込ませるような開始アニメーションを使用することで、このシナリオにかかる時間を隠すことができます。
待機 シナリオの作業量が原因で迅速ではない 1 - 3 秒 アプリの起動 回転/待機中のカーソルを使用して進行状況を確認できます。 終了アニメーションと開始アニメーション (たとえば、古いページを飛ぶ、新しいページを飛ぶ) の両方を使用して、このシナリオにかかった時間をマスクできます。
長い待ち時間 応答性を感じなくなった 2 - 5 秒 大規模なアプリの起動 (拡張スプラッシュ画面を使用)、HD ビデオ ストリームの開始 "読み込み UI" が表示されます。可能な場合は、ユーザーの "キャンセル" オプションを含めます。 読み込み UI は、ファストインタラクションクラス内に表示されます。 読み込み UI では、残りの割合や残り時間を表示する必要はありません。
キャプティブ 長い待ち時間 – 避けられない長い/複雑なシナリオのために特に設けられています 5 - 10 秒 システム ログイン "読み込み UI" またはダイアログが表示されます。可能な場合は、ユーザーの "キャンセル" オプションを含めます。 ダイアログは、高速対話クラス内に表示されます。 ユーザーに便利なコンテキストが提供される場合は、ダイアログにパーセンテージまたは残り時間が表示されます。
実行時間が長い 長い処理 – ユーザーはおそらく処理中に他のタスクを行います (処理中に別の作業に切り替える) 10 ~ 30 秒以上 新機能または更新プログラムのインストール、大きなファイルのダウンロード UI は、マルチタスクの可能性を反映するように設計する必要があります。 完了の見積もり (パーセンテージ、残り時間など) を含む進行状況ダイアログが表示されます。 または、UI を完全に最小化し、トースト通知を使用してシナリオが完了したときにのみユーザーに通知できます。
  1. 特定の対話の正確な期間を確認するには、 Windows Performance Analyzer (WPA) を使用してトレースをキャプチャして分析します。

    • トレースをキャプチャする前に、タスク マネージャーを開き、CPU 使用率が 5%未満であることを確認して、テスト デバイスをアイドル状態にします。 これにより、測定の干渉を最小限に抑え、妥当なサイズ トレースを提供します。 これにより、測定を目的とする相互作用をより適切に分離できます。

    • トレースをキャプチャするには、管理者モードコマンド ライン (PowerShell またはコマンド プロンプト) を開きます。

    • コマンドを入力します。 wpr -start GeneralProfile -filemode

    • アプリで対話シナリオを実行します。

    • コマンドを入力します。 wpr -stop Trace.etl

  2. トレースを分析し、改善の機会を見つけます。

    Windows Performance Analyzer (WPA) でキャプチャしたトレースを開いて、アプリでサポートされている各キー操作の期間を分析します。

    • WPA でトレースを開くには、コマンド ラインで次のように入力します。 wpa.exe Trace.etl
    • [システム アクティビティ] ドロップダウンを展開し、[汎用イベント] をダブルクリックして分析ビューを開きます。
    • アプリケーションに関連するイベント系列を選択し、探しているキー操作に関連付けられているプロセス、タスク名、およびイベント名が見つかるまで [プロバイダー名] ドロップダウンを展開します。 相互作用イベントの期間は、[ 時間 ] 列とグラフに表示され、[ 期間]、[ 開始時刻]、[ 終了時刻] が表示されます。

    トレースの期間が相互作用クラスの目標 (例: 500 ミリ秒) を満たしていない場合は、アプリのキー スレッド (おそらく UI スレッド) を特定し、CPU 使用率と待機の上位スタックを確認します。 *分析を実行する際に、一部の問題が独自のアプリケーションのコードに固有ではない可能性があることに注意してください。

    トレース イベント期間の分析

その他のリソース