Optimización en Flex

Ahora es mi turno para postear la presentación de “Optimización en Flex” del pasado Mif Onsite III.

Para los que no pudieron asistir; la presentación pretendía ser una introducción básica a los conceptos de rendimiento y gestión de memoria en Flex, así como mostrar algunas técnicas de optimización mediante ejemplos prácticos y muy sencillos.

Elastic racetrak

Slides:

Código:



A continuación una breve explicación del código que se enseñó:

Garbage Collector

1.1.OptFlex_GarbageCollector: Objetos con contador de referencias positivo, cero y un caso de referencia circular (nivel básico)

Profiler

2.1.OptFlex_performance_flex: Un simple bucle con traces donde, al usar el profiler, podemos comprobar el número de veces que se llama a la función, su self time y su cumulative time (nivel básico)

2.2.OptFlex_memory_flex: Creación de un botón cada segundo para poder comprobar el crecimiento paralelo de la memoria actual y la de pico (nivel básico)

Escenarios

3.1.OptFlex_binding: Este ejemplo está inspirado en un post de Doug McCune y demuestra un caso en el que una variable bindable hace que una función de filtrado vaya mucho más lenta (nivel medio)

3.2.OptFlex_modules: En este ejemplo se puede ver un caso muy sencillo de mejora del rendimiento percibido. Se demuestra como cargando un módulo desde el inicio o cargándolo después de que aparezca la pantalla de login puede hacer que el usuario perciba unos mejores tiempos de carga (nivel básico)

3.3.OptFlex_ordered_creation: Este es otro caso de mejora del rendimiento percibido. Cambiando el parámetro creationPolicy de un container a queued, podemos hacer que cargue su contenido de manera ordenada, con lo que hacemos que el usuario perciba una mayor velocidad de carga (nivel básico)

3.4.OptFlex_pool: Demostración simple de una técnica de gestión de una pool de objetos reutilizable (nivel medio)

3.5.OptFlex_repeater: Comparación de memoria (mediante profiler) y experiencia de usuario entre un componente repeater y una lista (nivel básico)

3.6.OptFlex_itemRenderer: Implementación de un itemRenderer en mxml y su equivalente basado en AS3 extendiendo de UIComponent y sobreescribiendo los métodos CreateChildren, CommitProperties y UpdateDisplayList (nivel medio)

3.7.OptFlex_references: Generación de un memory leak creando popups de manera indefinida y registrando una referencia desde Application (nivel básico)

3.8.OptFlex_cacheAsBitmap: Comparación de rendimiento mediante el uso del modificador cacheAsBitmap de la clase DisplayObject (nivel básico)

3.9.OptFlex_algorithm: Algunas técnicas sencillas para optimizar código AS3 (nivel básico-medio)

Si tenéis cualquier comentario, crítica o duda sobre la presentación dejad un mensaje y lo comentamos.

Comparte:



4votos  Vota!!

Acerca de esta entrada