Mejora de la capacidad de respuesta de la aplicación de Windows
Esta guía le ayudará a mejorar la capacidad de respuesta de la aplicación de Windows mediante la optimización de la latencia para el inicio y las interacciones clave. Las interacciones rápidas y con capacidad de respuesta (conocidas como interacciones de baja latencia) crean una mejor experiencia de usuario. Comprender las expectativas de la interacción, medir las duraciones actuales y establecer objetivos para mejorar en función de la clase de interacción puede dar lugar a mejoras significativas en la experiencia y satisfacción de los usuarios.
Guía paso a paso para optimizar las interacciones del comportamiento dinámico
Los clientes pueden saber cuándo el inicio de la aplicación, la navegación por menús o la carga de página o contenido se vuelven procesos lentos. Como esperan obtener una experiencia rápida y sin problemas, a continuación compartimos algunos pasos e instrucciones para comprender mejor esas expectativas.
Los pasos básicos para impulsar la optimización de la latencia son:
Definición del escenario y adición de eventos TraceLogging.
Haga una lista de las interacciones clave que verá un usuario mientras usa la aplicación, como el inicio, la apertura de un menú, la navegación a una página nueva, el contenido de representación, etc. En cada una de estas interacciones, agregue un evento de inicio y un evento de detención que se usarán para la medición y el análisis. Obtenga más información sobre cómo agregar TraceLogging, un formato para describir automáticamente el seguimiento de eventos para Windows (ETW).
Establecimiento de objetivos en función de la clase de interacción.
Los usuarios tienen diferentes expectativas para el rendimiento y la capacidad de respuesta de una aplicación en función del tipo de interacción que tengan. Por ejemplo, comparan la rapidez con la que se inicia una aplicación frente a la rapidez con la que se carga una página. Piense en los intervalos de tiempo aceptables (clases de interacción) necesarios para que los usuarios realicen sus tareas en su aplicación. Esto puede oscilar entre 200 milisegundos (ms) y 5 segundos (s). A continuación, asigne a cada tarea una etiqueta de clase de interacción con un objetivo asociado. Más adelante se muestran algunas directrices básicas, junto con sugerencias sobre cómo puede incluir una interfaz de usuario (UI) para mejorar la percepción de la capacidad de respuesta:
Etiqueta para clase de interacción | Percepción del usuario | Intervalo de retrasos | Ejemplos | Interfaz de usuario sugerida |
---|---|---|---|---|
Fast (rápido) | Retraso apenas perceptible | 100-200 milisegundos | Abrir la barra de aplicaciones, hacer clic con el botón derecho en el menú | |
Interactivo | Veloz, pero no rápida | 300-500 ms | Salir de una aplicación, mostrar los resultados de la búsqueda almacenados en caché | |
Pausar | No es veloz, pero se percibe dinámica | 500 ms - 1 s | Ir a otra página, reanudar la aplicación desde un estado suspendido, mostrar los resultados de búsqueda en la web | Se puede usar una animación de entrada (por ejemplo, introducir el nuevo contenido) para enmascarar el tiempo necesario para visualizar este escenario. |
Espera | Esto no será rápido debido a la cantidad de trabajo que necesita el escenario | 1 - 3 s | Inicio de la aplicación | Se puede usar un cursor giratorio o en espera para indicar el progreso. Tanto una animación de salida como de entrada (por ejemplo, retirar la página antigua o introducir la página nueva) se puede usar para enmascarar el tiempo necesario para este escenario. |
Espera larga | Ya no se percibe dinámica | 2 - 5 s | Inicios de aplicaciones grandes (usar la pantalla de presentación extendida), iniciar una secuencia de vídeo HD | Se muestra una "interfaz de usuario de carga" y, siempre que sea posible, incluir una opción "Cancelar" para el usuario. La interfaz de usuario de carga debe aparecer dentro de la clase de interacción rápida. La interfaz de usuario de carga no necesita mostrar un porcentaje o un tiempo restante. |
Cautiva | Espera larga: reservada para escenarios inevitablemente largos y complejos | 5 - 10 s | Inicio de sesión del sistema | Se muestra una "interfaz de usuario de carga" o un cuadro de diálogo y, siempre que sea posible, incluir una opción "Cancelar" para el usuario. El cuadro de diálogo debe aparecer dentro de la clase de interacción rápida. El cuadro de diálogo debe mostrar un porcentaje o un tiempo restante si esto proporciona contexto útil al usuario. |
Larga duración | Operaciones largas: es probable que los usuarios realicen varias tareas a la vez (cambien de tarea durante la operación) | 10 - más de 30 s | Instalación de nuevas características o actualizaciones, descargas de archivos grandes | La interfaz de usuario debe diseñarse para reflejar la posibilidad de multitarea. Se debe mostrar un cuadro de diálogo de progreso, incluida una estimación de la finalización (porcentaje, tiempo restante, etc.). Como alternativa, la interfaz de usuario puede minimizarse completamente y solo notificar al usuario cuando el escenario haya terminado el proceso mediante una notificación del sistema. |
Para comprobar las duraciones exactas de interacciones específicas, puede capturar y analizar un seguimiento mediante Windows Performance Analyzer (WPA).
Antes de capturar el seguimiento, abra el Administrador de tareas para establecer el dispositivo de prueba en modo inactivo y asegúrese de que el uso de la CPU sea inferior al 5 %. Al hacerlo, se minimizarán las interferencias de medición y se proporcionarán procesos de seguimiento de tamaño razonable. Esto le ayudará a aislar mejor la interacción que pretende medir.
Para capturar un seguimiento, abra una línea de comandos (PowerShell o símbolo del sistema) en modo de administrador.
Escribe el comando:
wpr -start GeneralProfile -filemode
.Ejecute el escenario de interacción en la aplicación.
Escribe el comando:
wpr -stop Trace.etl
.
Analice el seguimiento y busque oportunidades de mejora.
Analice la duración de cada interacción clave compatible con la aplicación; para ello, abra el seguimiento que acaba de capturar en Windows Performance Analyzer (WPA).
- Para abrir el seguimiento en WPA, en la línea de comandos, escriba:
wpa.exe Trace.etl
. - Expanda la lista desplegable Actividad del sistema y haga doble clic en "Eventos genéricos" para abrir la vista de análisis.
- Elija la serie de eventos relacionada con la aplicación y expanda la lista desplegable "Nombre del proveedor" hasta que pueda encontrar el proceso, el nombre de la tarea y el nombre del evento asociados a la interacción clave que busca. La duración del evento de interacción se mostrará en la columna Hora y en el gráfico, y podrá ver la duración, la hora de inicio y la hora de finalización.
Si la duración del seguimiento no cumple los objetivos de la clase de interacción (por ejemplo: 500 ms), identifique los subprocesos clave de la aplicación (probablemente el subproceso de interfaz de usuario) y examine las pilas principales para el uso de CPU y las esperas. *Recuerde que, a medida que realice el análisis, es posible que algunos problemas no sean específicos del código de su propia aplicación.
- Para abrir el seguimiento en WPA, en la línea de comandos, escriba: