Compartir a través de


Analizar la capacidad de respuesta de la interfaz de usuario en aplicaciones de la Tienda (XAML)

Se aplica a Windows y a Windows Phone

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.

NotaNota

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.

Marcas de usuario en la 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.

NotaNota
  • Windows.Foundation.Diagnostics.LoggingChannel implementa la interfaz Windows.Foundation.IClosable (proyectada como System.IDisposable en C# y VB). Para evitar la pérdida de recursos del sistema operativo, llame a Dispose() cuando haya terminado con un canal de registro.

  • Cada canal de registro abierto debe tener un nombre único.Si se intenta crear un nuevo canal de registro con el nombre de uno no desechado, se produce una excepción.

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:

  1. 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.

    Ejecución en el simulador

  2. 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.

  3. En el menú Depurar, elige Rendimiento y diagnósticos.

    Elegir Generador de perfiles XAML en el concentrador de diagnósticos

  4. Elige Capacidad de respuesta de la IU de XAML y, a continuación, elige Iniciar.

    NotaNota

    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 .

  5. Ejecute la aplicación para recopilar datos.

    SugerenciaSugerencia

    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.

  6. 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.

    Detener recopilación de datos

    Visual Studio analiza los datos recopilados y muestra los resultados.

    Página del informe Capacidad de respuesta de la IU de XAML

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:

  1. Elige Cambiar destino y después Aplicación instalada.

    Lista Cambiar destino

  2. 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.

    Seleccionar paquete de aplicaciones instalado para un dispositivo remoto

  3. En la lista Paquetes de aplicaciones instalados para la sesión actual, elige la aplicación de destino.

    Cuadro de diálogo Seleccionar paquete de aplicaciones instalado

  4. Elige Capacidad de respuesta de la IU de XAML en la página Rendimiento y diagnósticos.

  5. 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:

  1. 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.

  2. 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

Escala de tiempo de Rendimiento y diagnósticos

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

Gráfico Utilización de CPU 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)

Gráfico de líneas Rendimiento visual

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

Ventana de 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

Ventana 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:

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)