Améliorer la réactivité de votre application Windows

Ce guide vous aidera à améliorer la réactivité de votre application Windows en optimisant la latence pour le lancement et les interactions clés. Les interactions rapides et réactives (autrement appelées interactions à faible latence) créent une meilleure expérience utilisateur. Comprendre les attentes d’interaction, mesurer les durées actuelles et définir des objectifs d’amélioration en fonction de la classe d’interaction peut entraîner des améliorations significatives dans l’expérience et la satisfaction de vos utilisateurs.

Guide pas à pas pour optimiser les interactions pour un comportement réactif

Les clients peuvent se sentir lorsqu’un lancement d’application, une navigation de menu ou une charge de page/contenu est lent. Ils sont venus s’attendre à une expérience rapide et transparente et nous avons partagé certaines étapes et conseils pour mieux comprendre ces attentes ci-dessous.

Les étapes de base pour optimiser la latence sont les suivantes :

  1. Définissez le scénario et ajoutez des événements TraceLogging.

    Créez une liste des interactions clés qu’un utilisateur utilisera lors de l’utilisation de votre application, comme le lancement, l’ouverture d’un menu, la navigation vers une nouvelle page et le rendu du contenu, etc. Pour chacune de ces interactions, ajoutez un événement de démarrage et un événement d’arrêt à utiliser pour la mesure et l’analyse. Apprenez-en davantage sur l’ajout de TraceLogging, un format permettant de décrire automatiquement le suivi d’événements pour Windows (ETW).

  2. Définissez des objectifs en fonction de la classe d’interaction.

    Les utilisateurs ont des attentes différentes pour les performances et la réactivité d’une application en fonction du type d’interaction. Par exemple, la rapidité de lancement d’une application par rapport à la vitesse de chargement d’une page. Pensez à la durée acceptable (classes d’interaction) nécessaire pour que les utilisateurs effectuent leurs tâches dans votre application. Cela peut aller de 200 millisecondes (ms) à 5 secondes (s). Affectez ensuite à chaque tâche une étiquette de classe d’interaction avec un objectif associé. Vous trouverez ci-dessous quelques instructions de base, ainsi que des suggestions sur la façon dont vous pouvez inclure une interface utilisateur (UI) pour améliorer la perception de la réactivité :

Étiquette de classe d’interaction Perception de l’utilisateur Intervalle de retard Exemples Référence SKU suggérée
Rapide Délai presque imperceptible 100 à 200 millisecondes Ouvrir la barre d’application, cliquez avec le bouton droit sur le menu
Interactive Rapide, mais pas très rapide 300 à 500 ms Quitter une application, afficher les résultats de recherche mis en cache
Pause Pas rapide, mais semble réactive 500 ms à 1 sec Accéder à une autre page ; relancer l’application à partir d’un état interrompu Une animation d’entrée (par exemple, voler dans un nouveau contenu) peut être utilisée pour masquer le temps nécessaire pour ce scénario.
Wait Pas rapide en raison d’une quantité de travail pour le scénario 1 à 3 secondes Lancement des applications Un curseur en rotation/attente peut être utilisé pour noter la progression. Une animation de sortie et d’entrée (par exemple, voler l’ancienne page, voler une nouvelle page dans) peut être utilisée pour masquer le temps nécessaire pour ce scénario.
Longue attente Ne semble plus répondre 2 à 5 secondes Lancements d’applications volumineuses (utiliser l’écran de démarrage étendu), démarrage d’un flux vidéo HD Une « interface utilisateur de chargement » s’affiche, le cas échéant, inclure une option « annuler » pour l’utilisateur. L’interface utilisateur de chargement doit apparaître dans la classe d’interaction Rapide. L’interface utilisateur de chargement n’a pas besoin d’afficher un pourcentage ou une durée restante.
Captif Une longue attente – réservée aux scénarios inévitables longs/complexes 5 à 10 secondes Connexion système Une « interface utilisateur de chargement » ou une boîte de dialogue s’affiche, le cas échéant, inclure une option « annuler » pour l’utilisateur. La boîte de dialogue doit apparaître dans la classe d’interaction rapide. La boîte de dialogue doit afficher un pourcentage ou une durée restante si cela fournirait un contexte utile à l’utilisateur.
À long terme Opérations longues : les utilisateurs seront probablement multitask (basculer pendant l’opération) 10 à 30 secondes et plus Installation de nouvelles fonctionnalités ou mises à jour, téléchargements de fichiers volumineux L’interface utilisateur doit être conçue pour refléter la possibilité multitâche. Une boîte de dialogue de progression doit s’afficher, y compris une estimation de l’achèvement (pourcentage, temps restant, etc.). L’interface utilisateur peut également réduire complètement et uniquement avertir l’utilisateur lorsque le scénario a terminé à l’aide d’une notification toast.
  1. Pour case activée les durées exactes des interactions spécifiques, vous pouvez capturer et analyser une trace à l’aide de Windows Analyseur de performances (WPA).

    • Avant de capturer votre trace, récupérez l’inactivité de votre appareil de test en ouvrant Le Gestionnaire des tâches et en veillant à ce que l’utilisation du processeur soit inférieure à 5 %. Cela réduit les interférences de mesure et fournit des traces de taille raisonnable. Cela vous aidera à mieux isoler l’interaction que vous souhaitez mesurer.

    • Pour capturer une trace, ouvrez une ligne de commande (PowerShell ou Invite de commandes) en mode administrateur.

    • Entrez la commande : wpr -start GeneralProfile -filemode

    • Exécutez le scénario d’interaction sur votre application.

    • Entrez la commande : wpr -stop Trace.etl

  2. Analysez la trace et trouvez des opportunités d’amélioration.

    Analysez la durée de chaque interaction clé prise en charge par votre application en ouvrant la trace que vous venez de capturer dans Windows Analyseur de performances (WPA).

    • Pour ouvrir la trace dans WPA, dans votre ligne de commande, entrez : wpa.exe Trace.etl
    • Développez la liste déroulante Activité système et double-cliquez sur « Événements génériques » pour ouvrir la vue d’analyse.
    • Choisissez la série d’événements associée à votre application et développez la liste déroulante « Nom du fournisseur » jusqu’à ce que vous puissiez trouver le processus, le nom de la tâche et le nom d’événement associé à l’interaction clé que vous recherchez. La durée de l’événement d’interaction est répertoriée dans la colonne Heure, ainsi que dans le graphique, affichant la durée, l’heure de début et l’heure de fin.

    Si la durée de votre trace ne répond pas aux objectifs de la classe d’interaction (par exemple, 500 ms), identifiez les threads clés de votre application (probablement le thread d’interface utilisateur) et examinez les principales piles pour l’utilisation du processeur et les attentes. *N’oubliez pas que lorsque vous effectuez l’analyse, certains problèmes peuvent ne pas être spécifiques au code de votre propre application.

    Analyse de la durée de l’événement de trace

Ressources supplémentaires