Analizar la capacidad de respuesta de la interfaz de usuario en aplicaciones de la Tienda (XAML)
Utilice el generador de perfiles Capacidad de respuesta de la IU de XAML para detectar y corregir problemas de rendimiento relacionados con el procesamiento y la representación de XAML en las aplicaciones de la Tienda. Unos tiempos de inicio y de navegación inusualmente largos, una panorámica y un desplazamiento no uniformes y cierto retraso al procesar los datos proporcionados por el usuario son algunos de los problemas que esta herramienta puede ayudarte a analizar.
Nota |
---|
Además de los datos de capacidad de respuesta de la IU de XAML, puede recopilar y analizar datos de uso de CPU y de consumo de energía.Consulta Ejecutar herramientas de análisis desde la página Rendimiento y diagnósticos. |
Contenido
Identificar escenarios con marcas de usuario
Recopilar datos de la capacidad de respuesta de la IU para la aplicación
Recopilar datos de la capacidad de respuesta de la IU para una aplicación instalada
Analizar los datos de la capacidad de respuesta de la IU
Optimizar la capacidad de respuesta de XAML
Identificar escenarios con marcas de usuario
Puedes agregar marcas de usuario a los datos de generación de perfiles para ayudar a identificar áreas en la regla de escala de tiempo.
La marca aparece como un triángulo naranja en la escala de tiempo en el momento de la ejecución del método. El mensaje y el tiempo se muestran como información sobre herramientas al mantener el mouse sobre la marca. Si dos o más marcas de usuario están muy próximas, se combinan dichas marcas y los datos sobre herramientas. Puedes acercar la escala de tiempo para separar las marcas.
Para agregar una marca de usuario a código de C#, Visual Basic y C++, primero cree un objeto Windows.Foundation.Diagnostics LoggingChannel. A continuación, inserte llamadas a métodos LoggingChannel.LogMessage en los puntos del código que quiera marcar. Use LoggingLevel.Information en las llamadas.
Al ejecutarse el método, se agrega una marca de usuario a los datos de generación de perfiles junto con un mensaje.
Nota |
---|
|
Consulte el ejemplo de LoggingSession del Windows SDK.
Recopilar datos de la capacidad de respuesta de la IU para la aplicación
Puede generar perfiles de la capacidad de respuesta de la aplicación en el dispositivo de Visual Studio, el simulador o los emuladores de Visual Studio o un dispositivo remoto. Consulta Ejecutar aplicaciones de la Tienda desde Visual Studio. He aquí los pasos básicos:
Elige dónde deseas ejecutar la aplicación en la lista desplegable situada junto al botón Iniciar depuración en la barra de herramientas estándar del depurador.
Cuando vaya a generar un perfil de una tableta o un equipo distinto del de Visual Studio, configure el proyecto para generar perfiles remotos. Consulta Ejecutar aplicaciones de la Tienda Windows en un equipo remoto desde Visual Studio.
En el menú Depurar, elige Rendimiento y diagnósticos.
Elige Capacidad de respuesta de la IU de XAML y, a continuación, elige Iniciar.
Nota Al iniciar el generador de perfiles Capacidad de respuesta de la IU de XAML, puede aparecer una ventana de Control de cuentas de usuario que solicite tu permiso para ejecutar VsEtwCollector.exe.Elige Sí.
Ejecute la aplicación para recopilar datos.
Sugerencia Ejecuta la aplicación directamente en el dispositivo.El rendimiento de la aplicación observado en el simulador o a través de una conexión a escritorio remoto puede no ser indicativo del rendimiento real en el dispositivo.
Para detener la generación de perfiles, vuelve a Visual Studio (Alt + Tab) y elige Detener recolección en la página Rendimiento y diagnósticos.
Visual Studio analiza los datos recopilados y muestra los resultados.
Recopilar datos de la capacidad de respuesta de la IU para una aplicación instalada
El generador de perfiles Capacidad de respuesta de la IU de XAML solo puede ejecutarse en aplicaciones de la Tienda Windows 8.1 que se inicien desde una solución de Visual Studio o se instalen desde la Tienda Windows. Cuando una solución se abre en Visual Studio, el destino predeterminado es Proyecto de inicio. Puedes generar perfiles de la capacidad de respuesta de XAML para una aplicación instalada en el dispositivo local o en uno remoto sin una solución abierta.
Para establecer el destino de una aplicación instalada:
Elige Cambiar destino y después Aplicación instalada.
Generación de perfiles remota. Para ejecutar el generador de perfiles de la capacidad de respuesta de XAML en un dispositivo remoto, Herramientas remotas de Visual Studio debe estar instalada y en ejecución en el dispositivo. Consulta Ejecutar aplicaciones de la Tienda Windows en un equipo remoto desde Visual Studio.
En el cuadro de diálogo Seleccionar paquete de aplicaciones instalado, elige Equipo remoto y, a continuación, especifica el dispositivo remoto.
En la lista Paquetes de aplicaciones instalados para la sesión actual, elige la aplicación de destino.
Elige Capacidad de respuesta de la IU de XAML en la página Rendimiento y diagnósticos.
Elige Iniciar para iniciar la generación de perfiles.
Para detener la generación de perfiles, vuelve a Visual Studio (Alt + Tab) y elige Detener colección en la página del concentrador de diagnósticos.
Analizar los datos de la capacidad de respuesta de la IU
Diagnostic session timeline**|UI Thread utilization|Visual throughput (FPS)|Parsing view|**Hot Elements view
Después de obtener los datos de generación de perfiles, puedes seguir estos pasos para iniciar el análisis:
Examina la información de los gráficos Utilización del subproceso de IU y Rendimiento visual (FPS) y, a continuación, utiliza las barras de navegación de la escala de tiempo para seleccionar el intervalo de tiempo que deseas analizar.
Con la información de los gráficos Utilización del subproceso de IU o Rendimiento visual (FPS), examina los detalles en las vistas Análisis o Elementos activos para detectar las posibles causas de cualquier falta de capacidad de respuesta.
Escala de tiempo de la sesión de diagnóstico
La regla que aparece en la parte superior de la página Rendimiento y diagnósticos muestra la escala de tiempo para la información cuyo perfil se ha generado. Esta escala de tiempo se aplica a los gráficos Utilización del subproceso de IU y Rendimiento visual. Puedes restringir el ámbito del informe arrastrando las barras de navegación en la escala de tiempo para seleccionar un segmento de esta.
La escala de tiempo también muestra cualquier marca de usuario que hayas insertado, así como los eventos del ciclo de vida de activación de la aplicación.
Utilización del subproceso de IU
El gráfico Utilización del subproceso de IU (%) muestra la cantidad relativa de tiempo invertido en el subproceso de IU para estas categorías:
Análisis |
Indica el tiempo empleado en el subproceso de interfaz de usuario analizando código XAML y recuperando recursos de la aplicación. |
Presentación |
Indica el tiempo empleado en el subproceso de interfaz de usuario para presentar los elementos XAML. |
Código de aplicación |
Indica el tiempo invertido en el subproceso de interfaz de usuario para la ejecución de código (de usuario) de la aplicación no relacionado con el análisis ni el diseño. |
Otro Xaml |
Indica el tiempo empleado en el subproceso de interfaz de usuario ejecutando código XAML en tiempo de ejecución. |
Rendimiento visual (FPS)
El gráfico de líneas Rendimiento visual (FPS) muestra los fotogramas por segundo (FPS) en el subproceso de interfaz de usuario y de composición de la aplicación. Los valores aparecen en el cromo de una aplicación si se habilita EnableFrameRateCounter.
Vista Análisis
La vista Análisis contiene un gráfico de barras horizontales de los archivos XAML que se han cargado y procesado en la parte seleccionada de la escala de tiempo. Los elementos secundarios de un nodo de archivo XAML son los archivos incluidos en el archivo del nodo. Los nodos se enumeran en el orden en que se cargaron. El panel de detalles muestra estos valores para un archivo seleccionado.
Valores inclusivos y exclusivos
Duración exclusiva |
El tiempo que se tarda en procesar los elementos definidos explícitamente en este nodo. |
Duración inclusiva |
El tiempo que se tarda en procesar los elementos definidos en este nodo y en todos los nodos secundarios. |
Elementos de IU (exclusivos) |
El número de elementos definidos explícitamente en este nodo. |
Elementos de IU (inclusivos) |
El número de elementos definidos explícitamente en este nodo y en todos los nodos secundarios. |
Vista Elementos activos
La vista Elementos activos contiene un gráfico de barras horizontales que representa todos los elementos que participan en la presentación durante la parte seleccionada de la escala de tiempo. Los elementos se agrupan por plantillas y se ordenan de forma descendente por el tiempo empleado en la presentación.
Los elementos secundarios de un nodo de elemento son los elementos incluidos en el elemento del nodo primario. Los nodos secundarios también se ordenan por su tiempo de diseño. La vista de detalles muestra los valores de nombre y de tiempo del elemento seleccionado.
Optimizar la capacidad de respuesta de XAML
Uno de los mejores lugares para buscar información sobre cómo optimizar el rendimiento de tu aplicación son los temas de Performance best practices for Windows Store apps using C++, C#, and Visual Basic.
A continuación tienes algunas ideas sobre cómo optimizar el rendimiento de XAML:
Optimizar el inicio y la navegación de páginas
Puedes acelerar el inicio y la navegación de páginas de tu aplicación si examinas cuidadosamente los archivos XAML, los archivos de recursos y los archivos de datos cargados por las páginas. La aplicación puede ralentizarse si los archivos XAML crean o hacen referencia a un gran número de elementos de la IU que no son necesarios al cargar la página por primera vez, si se cargan archivos de recursos que hacen referencia a plantillas y estilos que no son aplicables a la página actual, o si el mismo archivo XAML o de recursos se carga varias veces. Si deseas conocer técnicas para solucionar estos problemas, consulta uno de estos temas:
Optimize loading XAML (Windows Store apps using C#/VB/C++ and XAML)
Minimize startup time (Windows Store apps using C#/VB/C++ and XAML)
Access the file system efficiently (Windows Store apps using C#/VB/C++ and XAML)
Optimizar la panorámica y el desplazamiento
Los problemas de rendimiento de la panorámica y el desplazamiento pueden deberse a la no utilización de un contenedor de virtualización, a que las plantillas son grandes y complejas o al uso de algoritmos ineficaces en los métodos de devolución de llamada por fotograma personalizados. Si deseas conocer técnicas para solucionar estos problemas, consulta uno de estos temas:
Optimizar la capacidad de respuesta a la entrada
Si deseas conocer técnicas para solucionar estos problemas, consulta Keep the UI thread responsive (Windows Store apps using C#/VB/C++ and XAML)