[Windows Phone Tango] Preparando nuestras aplicaciones (I)

Hola a todos!

Como ya vimos anteriormente, Microsoft ha liberado la CTP del SDK de Windows Phone Tango. Se estima que los dispositivos ejecutando esta versión de Windows Phone aumentarán el mercado disponible en un 60% por lo que es más que recomendable empezar a preparar nuestras aplicaciones para esta nueva versión del sistema operativo.

Una de las limitaciones más evidentes será el recorte en la memoria disponible para nuestra aplicación que pasará de 90Mb a 60Mb por lo que, si no lo habéis hecho ya, es buen momento para empezar a usar el profiler de Windows Phone y ver donde podemos optimizar nuestro consumo de memoria.

Introducción a la herramienta de análisis de rendimiento de Windows Phone

Una de las novedades que tuvimos con el SDK de Windows Phone 7.1 fue la inclusión de un profiler específico para nuestras aplicaciones móviles, el “Windows Phone Performance Analysis” que podemos encontrar en el menú Debug de Visual Studio 2010.

Al iniciarlo se nos presentarán dos opciones distintas:

image

En esta primera pantalla podremos decidir entre analizar el rendimiento visual y de código o analizar el consumo de memoria. También podemos ver como se nos indica en forma de Warning que estamos usando el emulador y no un dispositivo real, con lo que el rendimiento puede ser distinto al de un dispositivo real (y de echo lo es y mucho) y que para obtener unos resultados más precisos debemos usar la configuración de release. En este primer ejemplo vamos a seleccionar “Memory” y dejar los valores por defecto.

Por último tenemos un link para iniciar la aplicación, lo que dejará el profiler a la escucha de los resultados e iniciará la compilación y despliegue:

image

En este momento deberemos usar nuestra aplicación de forma normal. Podemos centrarnos en una página en concreto e ir midiendo el rendimiento que tiene bajo diferentes situaciones o hacer un barrido por toda la aplicación para ver una primera aproximación del consumo de memoria. En cualquier caso, cuando hayamos terminado, presionamos Stop Profiling y Visual Studio empezará a procesar los datos y nos los mostrará en una línea de tiempo:

image

En esta primera ejecución estamos usando una aplicación vacía, tal cual la crea el SDK, por lo que no vemos ninguna variación en el consumo de memoria y solo se produce un evento de recolección, al terminar la misma. Podemos seleccionar una porción de esta línea para ver un detalle de lo que ha ocurrido en ese momento exacto, simplemente pinchando en un punto inicial y arrastrando hasta un punto final:

image

Si presionamos “Start Analysis” se nos mostrará en un primer momento los avisos de rendimiento:

image

Si presionamos sobre la flecha a continuación de “Performance Warnings” podremos seleccionar “Heap Summary” donde podremos ver un sumario de uso de memoria, nuevas inclusiones… :

image

Si seleccionamos la línea “Retained Silverlight Visuals at End” podremos acceder a los tipos que contiene:

image

Por cada tipo además de ver su tamaño total, máximo durante el periodo seleccionado y el número de instancias, podremos ver una descripción de cada instancia:

image

Con esto, vemos el momento de creación, cuanto tiempo se mantuvo viva, quien lo creo y el tamaño en Bytes que ocupa.

Con esta información, podremos ver de forma rápida donde estamos aumentando el consumo de memoria, si esta se libera cuando debe o no, quien está creando objetos que no debería, etc… . Usarla de forma correcta nos ayudará a tener una aplicación más eficiente y poder llegar al nuevo 60% de los dispositivos que usarán Windows Phone Tango.

En el próximo artículo profundizaremos en la optimización del uso de memoria en nuestras aplicaciones, uso de imágenes, hilos y más cosas interesantes y curiosas.

Un saludo y Happy Coding!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *