Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo usar las herramientas de supervisión de rendimiento de la Windows Performance Toolkit para generar perfiles de rendimiento detallados para aplicaciones WinUI.
¿Cómo se usa la grabadora de rendimiento de Windows para supervisar las aplicaciones WinUI?
El Grabador de rendimiento de Windows (WPR) se puede usar para crear grabaciones detalladas de Seguimiento de eventos para Windows (ETW) del comportamiento del sistema y de la aplicación y el uso de recursos en función de los perfiles integrados. A continuación, las grabaciones de ETW se pueden procesar mediante el Analizador de rendimiento de Windows (WPA) para generar un conjunto de gráficos y tablas para facilitar el consumo y el análisis detallado del uso de CPU, los problemas de energía, el rendimiento deficiente del sistema o la aplicación y otros problemas de rendimiento.
Nota:
Aunque hay versiones de GUI y de línea de comandos de WPR, este tema solo hace referencia a la versión de la GUI (consulte Introducción a WPR para obtener más información sobre ambas versiones).
Perfiles de WPR
Los perfiles de WPR se usan para recopilar información sobre diversos aspectos y comportamientos de la aplicación.
En la imagen siguiente, se muestra la ventana del Grabador de rendimiento de Windows con el perfil "Uso de CPU" (uso de CPU para cada CPU del sistema) y el perfil "Actividad de XAML" (eventos de proveedores relacionados con XAML, como WinUI) seleccionados.
¿Cómo se usa el Analizador de rendimiento de Windows con aplicaciones WinUI?
WinUI es una API declarativa, de modo retenido donde la aplicación describe un árbol de UIElements y WinUI ejecuta el diseño y lo representa. Esto se realiza en el subproceso de la interfaz de usuario en lotes llamados "cuadros", que debe completarse rápidamente, idealmente dentro de un intervalo de actualización de la pantalla. Cuando los marcos se alargan, no solo se retrasa la llegada de las actualizaciones a la pantalla, sino que también se impide que el subproceso de la interfaz de usuario gestione las entradas. Los marcos lentos, aunque no son la única causa de los problemas de respuesta, son uno de los problemas más comunes.
Instalación del complemento "Análisis de marco de XAML"
WinUI registra eventos de ETW que realizan un seguimiento del inicio y parada de cada marco (se muestra en la siguiente captura de pantalla de la tabla de "Eventos Genéricos" de WPA). Sin embargo, dado que la duración de cada fotograma debe calcularse manualmente, es difícil identificar las ocurrencias de fotogramas lentos.
Para solucionar este problema, se incluye un nuevo complemento de tabla "Análisis de fotogramas XAML" con la Windows Assessment Toolkit (ADK) 10.1.26100.1 y versiones posteriores. Esta tabla calcula y muestra la duración de cada marco (junto con otras operaciones que consumen mucho tiempo).
Nota:
La tabla "Análisis de cuadros XAML" requiere Windows Performance Analyzer (WPA) de Windows ADK 10.1.26100.1 o posterior. La versión de WPR que se usa para realizar el seguimiento no importa.
Una vez instalado el ADK, la tabla "Análisis de fotogramas XAML" debe habilitarse editando el archivo de configuración "perfcore.ini" en la carpeta WPA (normalmente, C:\Archivos de programa (x86)\Windows Kits\10\Windows Performance Toolkit). Para ello, cierre las instancias abiertas de WPA, abra "perfcore.ini" en un editor de texto, agregue perf_xaml.dll a la lista de dlls y guarde y cierre el archivo. Reinicie WPA, que ahora debería mostrar el gráfico "Análisis de marco de XAML" en la parte inferior de la sección Actividad del sistema.
Uso del complemento "Análisis de marco de XAML"
El análisis de marco de XAML admite dos vistas (ambas vistas muestran las mismas columnas):
- "Marcos XAML interesantes" (valor predeterminado): muestra los marcos de WinUI basados en heurística que identifican los más propensos a causar problemas de respuesta. Estas corresponden a regiones que comienzan con operaciones como la inicialización de WinUI, la navegación por marcos o la pantalla flotante, y se detienen con el final del siguiente marco. Estos escenarios suelen implicar cambios extensos en el árbol UIElement y son los más propensos a causar problemas de rendimiento.
- "Toda la información Xaml": muestra todos los marcos WinUI de todos los procesos encontrados en el seguimiento. Para operaciones como una transferencia de marco o diseño, el complemento calcula y muestra automáticamente las duraciones basándose en los eventos de inicio y parada.
En la captura de pantalla siguiente se resalta cómo cambiar entre vistas de análisis de marcos de XAML.
Ambas vistas de análisis de marcos de XAML incluyen las siguientes columnas:
| Título | Importancia |
|---|---|
| Proceso | Nombre e ID del proceso |
| Identificador de hilo | Identificador de hilo |
| Tipo | Describe el evento correspondiente a la fila. Los valores posibles son:
|
| EsInteresante | Si la fila se considera interesante. Solo se muestran filas interesantes en la vista "Marcos de XAML Interesantes". |
| Duración (ms) | La duración de la fila. Se calcula desde eventos de inicio y parada. |
| Peso (ms) | El tiempo real de ejecución de la CPU correspondiente a la duración. |
| Inicio (s) | Hora de inicio del evento |
| Parada(s) | Hora del evento de detención |
Las columnas pueden ordenarse por Tipo o Duración para ayudar a identificar posibles problemas, como los marcos de mayor duración y más caros en el rastro (consulte la imagen siguiente). También puede profundizar en filas específicas para identificar las operaciones caras y las posibles optimizaciones.