Flex Hero: Size Report, OSMF y RSLs
Acabaremos esta serie de Hero para desktop con este post, hablando de estos tres aspectos importantes: Size Report, Open Source Media Framework (OSMF) y mejoras en cuanto a las Run Shared Libraries (RSL).
Hero Size Report
El tamaño final de las aplicaciones siempre es un aspecto determinante para cualquier proyecto. En este apartado veremos las mejoras que ha realizado Hero en este ámbito.
El compilador de Flex 3.x y 4.0 nos proporciona la opción -link-report , que genera un report XML, detallando el tamaño aproximado en bytes todas las clases ActionScript incluidas en el SWF final. Nos puede ayudar a ver durante el desarrollo, las areas que contribuyen, en mayor mesura, a tener una película demasiado pesada.
También disponemos de la utilidad swfdump utility, que proporciona un report de alto nivel, pero no lo suficientemente adecuado para ver las áreas problemáticas relacionadas con el tamaño de la película.
Flex 4.5 mejora la opción -size-report para tener un total del peso de cada tipo dentro del SWF (script, media, fonts, etc).
Uso
Cuando usamos mxmlc o compc -size-report
El tag principal report, contiene un subtag llamado swf que nos da el tamaño en bytes del SWF, tanto comprimido como no comprimido.
Otra información
Este report también nos da información importante como puede ser:
- Sumario por frame:Nos proporciona un sumario de todos los scripts y tags a nivel de frame.
- Actionscript: Datos ActionScript asociados con el SWF.
- Frame data: Datos adicionales a las definiciones de los frames relacionados al SWF.
- Bitmap data: Los bitmap data embebidos en la aplicación.
- Fonts: Todas las Fuentes embebidas.
- Sprite: Datos a nivel de Sprite.
- Datos de los Shapes
- Datos binarios: Datos binarios relacionados con el SWF, como pueden ser shaders, Pixel Bender u otros tipos de datos embebidos.
- Datos de sonido
- Datos de video
Más información sobre esta característica aquí.
Integración de OSMF 1.0
Flex Hero actualiza la version de OSMF a 1.0. Con esta actualización se añado soporte para HTTP Streaming. Podemos usar esta funcionalidad para proporcionar recursos bajo demanda, como streamming dinámico mediante el componente Spark VideoPlayer.
Dos enlaces para más información:
HTTP Streaming
Información
Mejoras de Hero en cuanto a RSLs
Se ha hecho un esfuerzo para poder usar las RSLs de manera mucho más fácil y más efectiva.
El uso de las RSLs en la caché de Flash Player se introdujo en Flex 3. Flex 3 solo tenía 3 RSLs y solo se cargaba por defecto la RSL del framework. La opción RSL linkage estaba desactivada por defecto.
En Flex 4 se hizo el cambio para que se cargaran todas las RSLs y para permitir que pudieran ser debuggadas, aunque no se cambió la manera de cómo se configuraban y cargaban. Se cargaban 6 RSLs para cada aplicación.
Las RSLs se definieron de manera muy simple: especificando el SWC que se quiere como librería externa y luego cargando la RSL desde la URL que contiene todas las clases necesarias para que la aplicación funcione.
Historial de las RSLs
1. El número de RSLs aumentó en el paso de Flex 3 a Flex 4. La carga de todas las RSLs retarda el inicio de la aplicación, ya que las RSLs deben cargarse aunque no se usen en la aplicación.
2. En Flex 4 se espera que las sub-aplicaciones y modules usen las RSLs cargadas por la aplicación primcipal. Pero hay módulos que necesitan custom RSLs. Podemos pensar que la aplicación principal cargará estas custom RSLs, pero no es así.
3. Podemos crear RSLs para sobreescribir clases de las RSLs del SDK, pero el proceso es complicado.
4. Se está creando un set de componentes Spark como análogos de los componentes mx. En muchos casos no hace falta usar componentes mx. Si incluimos la RSL del framework, se cargan todos los components mx y provoca más consumo de memoria.
En relación a todo esto, Hero aplica las siguientes soluciones:
1. El compilador elimina las RSLs que no son usadas por la aplicación, usando una nueva opción de compilación: “remove-unused-rsls”.
2. Si una sub-aplicación o módulo intenta cargar una RSL que ya ha sido cargada, la ignora.
3. Para poder sobreescribir RSLs, podemos incluir una opción de compilador para que incluya sólo la herencia de dependencias en un SWC que serán usadas por la RSL sobreescrita.
4. Se han movido los componentes mx a una RSL separada para poder descartarla si no la usamos.
Rendimiento
El rendimiento usando RSLs ha mejorado en Flex 4.5 comparado con Flex 4.0. Las mejoras se deben a no cargar las RSLs que no se necesitan y la reducción de tamaño de la RSL del framework.
Se han hecho tests con una aplicación simple, la típica “Hello World” para demostrar las mejoras de rendimiento.
La aplicación ha sido complada en 4.0 y en 4.5 con la opción de compilador “remove-unused-rsls”. El resultado es que se han quitado RSL que no se usan, como osmf o rpc y se ha conseguido reducir el tamaño de la RSL del framework de 608 KB a 310 KB.
Con una velocidad de bajada de 1500 kbps, se optienen estos resultados:
para la versión de SDK 4.5 el tiempo de inicialización es de 9 segundos y la memoria de sistema necesaria es de 14 MB, mientras que para el SDK 4.0 se precisan 15 segundos de inicialización y 17.4 MB de memoria.
Así observamos que hay una reducción considerable en cuanto a tiempo y a memoria.
Más info en estos dos links:
RSL enhancements
Linking RSLs
Acerca de esta entrada
Usted está leyendo “Flex Hero: Size Report, OSMF y RSLs,” una entrada de MadeInFlex
- Autor: Sergi Dote Teixidor
Sergi es un desarrollador de aplicaciones RIA basadas en la plataforma Flash. Entre sus motivaciones y aportaciones a la comunidad está el diseño y arquitectura del software y los movimientos tecnológicos. Su carrera profesional se desarrolla dentro de Codeoscopic, empresa que lidera el sector del desarrollo RIA en España. Sergi es actualmente CoManager de esta comunidad
- URL del Autor:
- http://www.codeoscopic.com
- Publicada:
- 19.12.10 / 6pm
- Categorías:
- Artículos
- Entradas relacionadas:
- No related posts
- Número de visitas:
- 2113
1 Comentario
Ir al formulario de comentarios | rss (comentarios) [?] | trackback url [?]